-
HTTP 완벽 가이드 3장 HTTP 메시지Web Dev/7. 네트워크 2021. 1. 14. 21:14728x90
- 메시지의 흐름
- HTTP는 인바운드, 아웃바운드라는용어로 트랜잭션 방향을 표현한다.
- 인바운드: 메시지가 서버 방향으로 가는것
- 아웃바운드: 메시지가 다시 클라이언트로 돌아오는것
- 업스트림: 메시지의 발송자는 수신자의 업스트림
- 다운스트림: 메시지는 강물처럼 다운스트림으로 흐른다
- CRLF
- 시작줄과 헤더는 CRLF 줄바꿈문자열로 구분된다.
- HTTP 명세에 따르면 줄바꿈 문자열은 CRLF인데, 개행 문자도 받아들여야할 필요성이 있다.
- 시작줄/헤더
- 아스키 문자열로 구성
- CRLF(캐리지 리턴과 개행문자)로 구성
- 헤더는 본문에 대한 정보를 준다
- 본문
- 엔터티 본문은 텐스트, 이진데이터, 비어있기 모두 가능하다
- 메시지는 요청 메시지이거나 응답메시지이다
- 요청 메시지의 구조
<메서드> <요청 URL> <버전> <헤더> <엔터티 본문>
- 버전: 사용중인 HTTP 버전
- 응답 메시지의 구조
<버전> <상태 코드> <사유 구절> <헤더> <엔터티 본문>
- 상태 코드: 요청중에 무슨일인지, 실패했는지 성공했는지 등
- 버전 번호:
- 요청과 응답 메시지 양쪽에 있다
- 자신이 따르는 프로토콜의 버전을 상대방에게 알려주는 용도
- HTTP 관련 youtube 영상 요약
이챕터는 읽다보니까 잘 모르겠어서 영상의 힘을 받기로했다!![다른 요약자료]
www.youtube.com/watch?v=0OrmKCB0UrQ&ab_channel=HusseinNasser
- HTTP Anatomy
- HTTP 리퀘스트의 항목
URL Method type Headers Body - HTTP 리스폰스의 항목
Status Code Headers Body - HTTP 1.0 over TCP
TCP 커넥션을 다 감당하기엔 메모리가 좀 딸리던 시절.
index.html 을 요청하는 get 요청을 보내고 바로 닫음.
근데 그다음에 이미지 같은걸 요청하기엔 이미 요청을 닫아버림.
TCP 요청 열고 닫느라 시간다 쓴다. 이렇게 살수는 없는 법. 요약하자면 HTTP1.0은 아래의 특징을 가지고 있다.
- New TCP connection with each request
- Slow
- Buffering
- HTTP 1.1 over TCP
한 20년정도 썼다고... Keep Alive 라는게 나타났다.
요청하나 했다고 바로 닫고 그러지않고, 좀 열어둠.
- Persisted TCP Connection: 바로 안닫는다
- Low latency: 좀 빨라짐
- Streaming with Chuncked transfer
- Pipelining(disabled by default)
- HTTP/2 over TCP
- Multiplexing: [참고자료]
- compression
- Server Push
- SPDY
- secure by default
- Protocol Negotiation during TLS
- HTTP/2 over QUIC(HTTP/3)
- Replaces TCP with QUIC(UDP with congestion control)
- All HTTP/2 features
- Still experimental as of making of this video
- 더 짧은 영상
후기
이걸 뭐 어떻게 쓴다는건진 모르겠구먼. 개념만 알아두고, 나중에 막상 뭔가 처리할일이 있으면 다시 공부를 할 부분인것 같다.
참고자료
- evan-moon.github.io/2019/06/13/http2-with-aws/
'Web Dev > 7. 네트워크' 카테고리의 다른 글
HTTP 완벽 가이드 7장 캐쉬 (0) 2021.01.30 HTTP 완벽 가이드 5장 웹서버 (0) 2021.01.17 HTTP 완벽 가이드 4장 커넥션 관리 (0) 2021.01.14 HTTP 완벽 가이드 2장 URI과 리소스 (2) 2021.01.14 HTTP 완벽 가이드 정리하기 (2) 2021.01.14