나의 독학은

3장 - HTTP 정보는 HTTP 메서드에 있다 본문

학습/그림으로 배우는 Http & Network Basic

3장 - HTTP 정보는 HTTP 메서드에 있다

안종혁 2023. 9. 5. 13:03

3.1 HTTP 메시지

HTTP 메시지 구조

좌) HTTP 메시지인 리퀘스트, 리스폰스 메시지              우) HTTP 헤더 필드

*메시지 헤더 : 전송되는 데이터의 메타 정보 (부가 설명)

*메시지 바디 : 전송되는 실제 데이터

3.3 메시지 바디와 엔티티 바디의 차이

메시지 vs 엔티티

- 메시지 : HTTP 통신의 기본 단위로 8비트로 구성되고 통신을 통해 전송된다.

- 엔티티 : 요청과 응답의 부가물(payload)로 전송되는 정보로 엔티티 헤더 필드와 엔티티 바디로 구성된다.

*엔티티는 웹 페이지, 텍스트, 문서, 이미지, 비디오 같은 것

 

HTTP 메시지 바디의 역할은 엔티티 바디를 운반하는 일이다.

기본적으로는 메시지 바디와 엔티티 바디는 같지만 전송 코딩이 적용된 경우 둘은 달라지게 된다.

*전송 코딩 : 큰 데이터를 전송할 때 엔티티 바디를 분할(청크)하는 것으로 청크 전송 코딩이라고도 한다.

3.3 ~ 3.6 HTTP 의 여러가지 기능

압축해서 보내는 콘텐츠 코딩

- 파일을 zip으로 압축해서 보내는 일이 있다. 서버가 엔티티를 작게 압축해서 송신하면 클라이언트가 복원한다.

 

여러 데이터를 보내는 멀티파트

- 하나의 메시지 바디 내부에 엔티티를 여러 개 포함시켜 보낼 수 있다.

- 메일을 보낼 때, 메일에 텍스트, 영상, 이미지와 같은 여러 다른 데이터를 다룰 수 있다.

 

일부분만 받는 레인지 리퀘스트

- 이미지와 데이터의 다운로드가 끊키면 처음부터 다운로드 하지 않고, 리줌을 통해 끊킨 지점부터 다운로드를 재개한다.

*리줌(resume) : 엔티티의 범위를 지정하는 것이다. Range 헤더 필드의 리소스의 바이트를 지정하여 엔티티 범위를 지정할 수 있다.

 

최적의 콘텐츠를 돌려주는 콘텐츠 네고시에이션

- 클라이언트에 적합한 구조를 표시하는 웹 페이지의 구조를 콘텐츠 네고시에이션이라 한다.

   *예 : 구글 홈페이지는 영문 버전과 한국어 버전이 있고, 구글 홈페이지는 콘텐츠 네고시에이션 구조를 하고 있다고 한다.

 

- 콘텐츠 네고시에이션은 메시지에 포함된 리퀘스트 헤더 필드에 따라 클라이언트에 제공할 리소스를 판단한다.

 

- 콘텐츠 네고시에이션의 종류

  • 에이전트 구동형 네고시에이션 : 클라이언트가 JavaScript를 사용해서 유저가 수동으로 선택할 수 있게 해준다
  • 트랜스페어런트 네고시에이션 : 서버와 클라이언트 둘 다 네고시에이션을 한다.
  • 서버 구동형 네고시에이션 : 서버에서 자동으로 처리하기 때문에 유저에게 적절한 것이 선택될 수 없다.

 

그림으로 배우는 Http & Network Basic

출처 : 그림으로 배우는 Http & Network Basic