Tomcat
- Web Application Server(WAS)
- Web Application Program을 실행시켜주는 서버
- 웹 애플리케이션 전용 서버
- Servlet/JSP엔진, Servlet/JSP 컨테이너의 역할을 수행하는 서버
URL과 웹페이지 vs URL과 웹애플리케이션
URL(Uniform Resource Locator)
- 자원(웹페이지, 웹애플리케이션, 그림, 동영상, 파일)의 위치를 나타내는 주소
- 서버에 있는 자원을 요청할 때 클라이언트가 입력하는 주소
- 일반적으로 웹에서 브라우져(클라이언트)의 주소창에 URL을 입력하면 웹 브라우저가 해당 URL을 서버로 전달한다(웹서버는 URL이 나타내는 주소에 해당 자원이 존재하면 그 자원을 응답을 제공한다)
- URL 형식
- https://namu.wiki/w/%EB%A6%AC%EB%B2%84%ED%92%80%20FC
- http : 프로토콜
- namu.wiki : 호스트명, 서버명, 도메인네임
- /w/%EB%A6%AC%EB%B2%84%ED%92%80%20FC : 실제 자원의 위치(웹애플리케이션의 위치) 및 쿼리스트링(서버에 보내는 추가정보)
- https://namu.wiki/w/%EB%A6%AC%EB%B2%84%ED%92%80%20FC
웹페이지와 웹애플리케이션
- 웹페이지 : 정적자원(정적 HTML 컨텐츠) 제공 / 미리 작성해둔 HTML문서가 응답으로 제공되는 것
- 웹 애플리케이션 : 동적자원(동적 HTML 컨텐츠) 제공 / 동적 웹 컨텐츠를 제공하는 프로그램(Servlet/JSP)
웹브라우저와 웹서버
웹브라우저
- 클라이언트의 역할을 수행
- URL을 서버로 전송해서 웹페이지를 요청하거나 웹애플리케이션의 실행을 요청한다
웹 서버
- 서버의 역할을 수행
- 클라이언트가 전송한 URL을 분석해서 해당 웹페이지를 응답으로 제공하거나, 해당 웹애플리케이션을 실행해서 동적 컨텐츠를 응답으로 제공한다
- 웹서버(HTTP프로토콜을 사용하는)는 일반적으로 80포트에 바인딩된다
- 80포트에서 실행중인 웹서버에 요청을 보낼때는 URL에서 포트번호를 생략할 수 있다
- 80포트가 아니면 http://호스트명:포트번호/경로/파일명?쿼리스트링
HTTP
- HpyerText Transfer Protocol
- 웹브라우저와 웹서버 간의 메세지 교환시 사용되는 규칙을 정의하고 있다
- 클라이언트와 서버들은 개별적인 메세지 교환에 의해 통신을 한다
- 브라우저인 클라이언트에 의해 전송되는 메세지를 요청(Request), 서버에서 응답으로 전송되는 메세지를 응답(Response)라고 한다
- HTTP는 애플리케이션 계층의 프로토콜이며, 신뢰가능한 전송프로토콜인 TCP나 암호화된 TCP연결인 TLS를 통해 전송된다
- HTTP는 HTML문서 뿐만이 아니라 이미지, 비디오 혹은 HTML 폼 결과와 같은 내용을 서버로 포스팅하기 위해서도 사용된다
- HTTP는 HTML문서 뿐만 아니라 이미지, 비디오 혹은 HTML 폼 결과와 같은 내용을 서버로 포스팅하기 위해서도 사용된다
HTTP 기반 시스템의 구성요소
- HTTP는 클라이언트-서버 프로토콜이다
- 요청의 하나의 개체에 의해 전송된다
- 각각의 개별요청은 서버로 보내지며, 서버는 요청(request)를 처리하고, 응답(response)라고 불리는 응답을 제공한다
클라이언트
- 보통 사용자의 브라우저
- 브라우저는 항상 요청을 보내는 개체다
- 웹페이즈를 표시하기 위해, 브라우저는 페이지의 HTML문서를 가져오기 위한 요청을 전송한 뒤 파일 구문을 분석하여 컨텐츠를 화면에 표시한다
웹서버
- 클라이언트의 요청에 대한 응답을 제공하는 서버
- 서버는 클라이언트의 요청을 처리하고, 적절한 응답을 제공한다
HTTP의 특징
간단하다
- HTTP는 사람이 읽을 수 있게 간단하게 고안되었다 (메세지를 사람이 읽고 이해가 가능하며 테스트하기도 쉽다)
확장에 용이
- HTTP 헤더는 HTTP를 확장하고 실험하기 쉽게 설계되어 있다
- 클라이언트와 서버가 새로운 헤더에 대한 간단한 합의만 한다면, 언제든지 새로운 기능을 추가할 수 있다
HTTP는 상태가 없고 세션은 있다
- HTTP는 상태를 저장하지 않는다 (Stateless 프로토콜)
- HTTP의 핵심은 상태가 없는 것이지만, HTTP 쿠키는 상태가 있는 세션을 만들도록 지원한다
HTTP 메세지
- HTTP 메세지는 클라이언트와 서버가 서로 교환하는 데이터다
- 메세지의 타입에는 요청(Request)와 응답(Response)가 있는데 각각의 특성에 맞는 형식을 갖고 있다
요청메세지(Request)
- 클라이언트(웹브라우저)가 서버로 보내는 메세지
- 요청메세지 = Request Header + 빈줄 + Request Body
- 요청헤더부 = 요청라인 + 요청헤더정보로 이루어져 있다
응답메세지(Response)
- 서버가 클라이언트로 보내는 메세지
- 응답메세지 = Response Header + 빈줄 + Response Body
- 응답헤더부 = 응답라인 + 응답헤더정보
'Web' 카테고리의 다른 글
프로젝트에서 톰캣설정 (0) | 2024.01.26 |
---|---|
JDBC 프로젝트 개발순서 (0) | 2024.01.26 |
Web_Servlet (0) | 2024.01.15 |
Web_GET과 POST, MIME (1) | 2024.01.10 |
JSP_JSP와 JSP 구성요소 및 내장객체 (1) | 2024.01.05 |