Web Dev/7. 네트워크

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

hYhY1234 2021. 1. 14. 21:14
728x90

- 메시지의 흐름

  • 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

 

- 더 짧은 영상

후기

이걸 뭐 어떻게 쓴다는건진 모르겠구먼. 개념만 알아두고, 나중에 막상 뭔가 처리할일이 있으면 다시 공부를 할 부분인것 같다. 

 

 

참고자료

- fliedcat.tistory.com/77

 

웹서버 HTTP2 지원 확인 방법

개요 대부분의 브라우저가 HTTP2를 지원하는 반면 아직까지도 대부분의 웹서버들은 HTTP2 를 지원하지 않는 경우가 많다. 여기서는 자신이 사용하고 웹사이트나 운영하는 웹서버가 HTTP2 프로토콜

fliedcat.tistory.com

- evan-moon.github.io/2019/06/13/http2-with-aws/

 

AWS와 함께 간단하게 HTTP/2 적용하기

이번 포스팅에서는 AWS(Amazon Web Service) 환경에서 HTTP/2 프로토콜을 적용하는 방법에 대해서 설명하려고 한다. AWS의 와 는 자체적으로 HTTP/2 프로토콜을 사용할 수 있는 기능들을 제공해주고 있기

evan-moon.github.io