메시지의 흐름
메시지의 흐름을 가르키는 용어는 다음과 같다.
인바운드
클라이언트 -> 서버 로 메시지가 이동(요청)하는 것
아웃바운드
서버 -> 클라이언트로 메시지가 이동(응답)하는 것
다운스트림
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로 공백을 만들어 준다.
실제 시작줄과 헤더는 웹을 해봤다는 쉽게 이해할 수 있는 부분이라고 생각한다.
그래서 헤더만 조금 더 깊이 들어가보도록 한다.
응답 헤더
다음은 유튜브에 있는 각기 다른 헤더를 가져와보았다.
General
공통적인 부분을 의미하고 실제로 모든 파일이 같다.
요청에 대한 메소드, 상태 코드, 요청한 컴퓨터의 IP와 RequestURL 등이 기록되어 있다.
Response Headers
각각 자바스크립트 파일, 문자열, video파일에 대한 요청을 했다.
실제로 Content-type을 살표보면 이에 대응하는 것을 볼 수 있다.
이외에 보안이나 쿠키정책에 대한 것들과 일반헤더(Date 와 같은 것들)이 보인다.
요청 헤더
content 헤더와 대응되는 것이 있다면 acccept 관련 헤더이다. 클라이언트가 원하는 것이 무엇인지, 무엇이 가능 한지 원치 않는 것은 무엇인지에 대한 정보가 담겨 있다. 인코딩와 언어에 관한 내용도 있다.
이외에 쿠키에 전달에 관한 내용 등을 확인 해볼 수 있다.
'교양 > 네트워크' 카테고리의 다른 글
HTTP 서버 HTTPS로 서비스 하기 (0) | 2019.08.21 |
---|---|
HTTP 완벽가이드 - 4장 커넥션 관리 (0) | 2019.08.17 |
HTTP 완벽가이드 - 2장 URL과 리소스 (0) | 2019.08.16 |
HTTP 완벽가이드 - 1장 HTTP 개관 (1) | 2019.08.16 |