Web Server와 WAS

Web Server와 WAS의 차이는?

Web Server란?

  • 소프트웨어 : HTTP를 통해 웹 브라우저에서 요청하는 HTML 문서나 오브젝트(이미지 파일 등)을 전송해주는 서비스 프로그램을 말한다.
  • 하드웨어 : Web Server 소프트웨어를 구동하는 하드웨어(PC, Phone)는 통상적인 웹서버가 아니다.

Web Server의 기능은?

  • 웹 서버의 주된 기능은 웹 페이지를 클라이언트로 전달하는 것이다.
    • 주로 그림, CSS, 자바스크립트를 포함한 HTML 문서가 클라이언트로 전달된다.
  • 주된 기능은 콘텐츠를 제공하는 것이지만 클라이언트로부터 콘텐츠를 전달 받는 것도 웹 서버의 기능에 속한다.
    • 이러한 기능은 파일 업로드를 포함하여 클라이언트에서 제출한 웹 폼을 수신하기 위해 사용된다.

보통 대다수의 웹 서버는 Active Server Page(ASP), PHP 등의 서버 사이드 스크립트 언어(Server-side scripting)를 지원한다. 이는 서버 소프트웨어의 변경 없이도 웹 서버가 수행할 동작을 분리된 서버 사이드 스크립트 언어에 기술할 수 있다는 의미이다. 보통 서버 사이드 스크립트 언어를 통해 구현되는 기능이란 HTML 문서를 동적으로 생성하는 것을 말한다. 이렇게 동적으로 생성된 HTML 문서는 동적 컨텐트라 하는데 주로 데이터베이스의 정보를 조회해서 보여주거나 수정하기 위해 사용된다. 동적 컨텐트와 대비되는 개념으로 정적 컨텐트가 있는데 일반적으로 동적 컨텐트보다 더 빠르게 동작하고 쉽게 캐시될 수 있지만, 반환되는 컨텐트의 내용이 항상 동일하다.

웹 서버는 월드 와이드 웹 뿐만 아니라 프린터, 라우터, 웹캠과 같은 임베디드 장치, 그리고 근거리 통신망(local network)에서도 사용된다. 시스템의 모니터링 또는 장치 관리를 위한 목적으로 사용되는데, 이렇게 웹 서버는 클라이언트에 다른 소프트웨어의 설치 없이 대부분의 운영체제에 포함된 웹 브라우저만으로 서비스를 제공할 수 있다는 장점이 있다.

1. 톰캣의 두 가지 기능

  1. 웹서버 : 사용자의 요청을 받는 기능
  2. 컨테이너 : 번역해주는 기능
    • request : map형식(key,값)으로 찾아서 보내줌

1.1 톰캣 기능 예시 (1)

  1. 사용자 : URL localhost/main/main.jsp 요청
  2. 웹서버 : 사용자로부터 요청 받기
  3. 컨테이너
    • main.jsp를 html로 변환
    • JSP , Servlet 실행
    • html만 출력
  4. 웹서버 : 사용자에게 응답 보내기
  5. 브라우저 : 화면 출력

1.2 톰캣 기능 예시(2)

  1. 사용자 : main.jsp?page=1을 요청
  2. 톰캣
    • main.jsp파일에서 page가 1인 애들을 묶음 : request.setAttribute("page",1)
    • 묶은 애들을 보내줌 : request.getParameter("page")

2. JSP

  • 자바와 HTML을 동시에 작성할 수 있게 함
  • HTML코드는 서블릿에서 public doGet(){} 메소드 안에 작성하는 것과 같음
  • 그래서 모든 변수는 메소드 내에 있는 것이기 때문에 지역변수임
  • 클래스가 아닌 메소드에 작성하고 있음을 주의해야함

2.1 JSP 전송방법

  1. <a href=""> : 1~2개씩만 전송
    • get방식 : URL 뒤에 보이게
  2. <form action=""> : 한번에 전송
    • get방식 : URL 뒤에 보이게
    • post방식 : URL 뒤에 안보이게
    • form태그 액션 수행하는 버튼들(데이터 전송하는 버튼들)
    1. <input type=submit>
    2. <button>
    3. <input type=image>
  • 파라미터 읽기