본문 바로가기

교양/네트워크

HTTP 완벽가이드 - 3장 HTTP 메시지

메시지의 흐름

메시지의 흐름을 가르키는 용어는 다음과 같다.

인바운드

클라이언트 -> 서버 로 메시지가 이동(요청)하는 것

 

아웃바운드

서버 -> 클라이언트로 메시지가 이동(응답)하는 것

 

다운스트림

HTTP의 모든 요청은 다운 스트림으로 흐른다.

모든 메시지는 다운스트림

메시지 구조

메시지는 다음과 같은 구조를 가진다.

요청

시작줄 GET /tools.html HTTP/1.0 CRLF

헤더 : Accpet : text/html, image/gif CRLF

 

응답

시작줄 : HTTP/1.0 200 OK CRLF

헤더 : Content-type : text/html CRLF

CRLF

본문 : "Hello HTTP" CRLF

 

특이한 점은 CRLF(캐리지리턴)이다. 보통 프린터에 사용되는 인코딩에서 띄어쓰기(\n)과 같은 역할을 한다.

모든 메시지는 CRLF로 끝나야 하고(구분선이다) 헤더는 특이하게 마지막 줄에 CRLF로 공백을 만들어 준다.

 

실제 시작줄과 헤더는 웹을 해봤다는 쉽게 이해할 수 있는 부분이라고 생각한다.

 

그래서 헤더만 조금 더 깊이 들어가보도록 한다.

 

응답 헤더

 

다음은 유튜브에 있는 각기 다른 헤더를 가져와보았다.

youtube.com
watchtime
youtube_video

General

공통적인 부분을 의미하고 실제로 모든 파일이 같다.

요청에 대한 메소드, 상태 코드, 요청한 컴퓨터의 IP와 RequestURL 등이 기록되어 있다.

Response Headers

각각 자바스크립트 파일, 문자열, video파일에 대한 요청을 했다.

실제로 Content-type을 살표보면 이에 대응하는 것을 볼 수 있다.

이외에 보안이나 쿠키정책에 대한 것들과 일반헤더(Date 와 같은 것들)이 보인다.

 

요청 헤더

youtube.com
watchtime

content 헤더와 대응되는 것이 있다면 acccept 관련 헤더이다. 클라이언트가 원하는 것이 무엇인지, 무엇이 가능 한지 원치 않는 것은 무엇인지에 대한 정보가 담겨 있다. 인코딩와 언어에 관한 내용도 있다.

이외에 쿠키에 전달에 관한 내용 등을 확인 해볼 수 있다.