HTTP 요청-응답 메시지
브라우저에 URL을 입력하면 HTTP 표준에 따라 URL을 요청 메시지로 변환하고 TCP/IP를 사용하여 인터넷을 통해 요청을 보낸다. 웹 서버는 요청을 수신하고 클라이언트가 요청한 웹 페이지를 반환(response)한다.
HTTP 요청 메시지
서버가 요청 메시지를 수신하면 다음 중 하나가 발생한다.
1) 요청을 문서 디렉토리 아래의 파일에 매핑하고 파일을 브라우저에 반환한다.
2) 요청을 내부 프로그램에 매핑한 다음 프로그램을 실행하고, 프로그램의 출력을 클라이언트에 반환한다.
3) 요청이 충족되지 않으면 오류 메시지를 반환한다.
요청 메시지는 크게 요청 라인(Request Line), 요청 헤더(Request Headers), 공백 라인(A blank line), 요청 바디(Requset Message Body)로 나뉜다.
① 요청 라인: HTTP Method, Web page, HTTP version
② 요청 헤더: Host, Accept, User-Agent, Cokie, Referer
- Host: 클라이언트가 요청한 도메인 정보
- Accept: 웹 서버로부터 수신되는 데이터 중 웹 브라우저가 처리할 수 있는 데이터의 형식 정의
- User-Agent: 사용자 웹 브라우저 종류 및 버전 정보
- Cookie: 클라이언트 로컬에 저장되는 key-value쌍의 데이터 파일
- Referer: 경유한 웹 사이트에 대한 정보
③ 공백 라인: 요청 헤더와 요청 바디를 구분하는 라인
④ 요청 바디: 클라이언트가 서버에 실제 요청한 내용
(아래 사진은 GET요청인데 Request Body에 데이터가 들어가있다. 없는 것으로 생각하자.)
HTTP 응답 메시지
브라우저는 응답 메시지를 수신하고 해석한 후에 브라우저 창에 메시지 내용을 표시한다.
응답 메시지는 크게 상태 라인(Status Line), 응답 헤더(Response Headers), 공백 라인(A blank line), 응답 바디(Requset Message Body)로 나뉜다.
① 상태 라인: HTTP Version, Status Code
② 응답 헤더: Date, Server, Content-Type, Last-Modified
③ 응답 바디: 실제 응답받은 메시지(데이터)
참조
sasi-kala.com/blog/rails-internals-series-1
documentation.help/DogeTool-HTTP-Requests-vt/http_request.htm
'CS > 네트워크' 카테고리의 다른 글
[네트워크] HTTP의 이해3: HTTP Terminologies (0) | 2021.02.14 |
---|---|
[네트워크] HTTP의 이해1: Client-Server Model, HTTP Protocol (0) | 2021.02.06 |
[네트워크] TCP/IP (0) | 2021.02.06 |
[네트워크] URL의 이해 - protocol, host, port, path, query (0) | 2021.01.29 |