728x90
😇 HTTP 정보는 HTTP 메시지에 있다
3.1 HTTP 메시지
- HTTP에서 교환하는 정보를
HTTP 메시지
라고 한다. - 크게 구분하면 헤더와 바디로 구분된다. 개행 문자(
/n
)로 둘을 구분한다. - 바디는 항상 존재하는 것은 아니다.
3.2 리퀘스트 메시지와 리스폰스 메시지의 구조
- 보내는 쪽(Request)에서는 요청
URI
와HTTP 버전
을 헤더에 담아 보낸다. - 받는 쪽(Response)에서는
상태 코드
와HTTP 버전
을 헤더에 담아 보낸다. - 헤더에는 송수신 정보 외에도 여러 조건과 속성을 포함한다.
3.3 인코딩으로 전송 효율을 높이다
- 있는 그대로 보내는 것보단 인코딩을 한다면 아무래도 효율이 좋을 것이다.
- HTTP 통신에서 엔티티는 하나의
payload
이다. - 일반적으로 메시지 바디와 엔티티 바디는 같지만 어떻게 보내는지(인코딩)에 따라 달라질 수 있다.
3.3.2 콘텐츠 코딩
- 콘텐츠 코딩이란 엔티티에 적용하는 인코딩을 의미한다. 정보를 그대로 유지하는 것이 중요하다.
- 콘텐츠 코딩의 종류
- gzip (GNU zip)
- compress (UNIX 표준압축)
- deflate (zlib)
- identity (No Encoding)
- 콘텐츠 코딩의 종류
3.3.3 청크 전송 코딩
- 이미지와 같이 큰 데이터는 모두 로드되지 않으므로 조금씩 분할해서 전송해 일부분씩 보이도록 한다.
- 이렇게 엔티티 바디를 분할하는 방식을
청크 전송 코딩
이라고 부른다.
3.4 여러 데이터를 보내는 멀티파트
- 멀티파트는 이메일에서 사용하던
MIME
을 확장한 방식을 사용한다. - 멀티파트를 사용하기 때문에 메시지 바디 내부에 여러 엔티티를 사용할 수 있는 것이다.
- 멀티파트는 파트마다 헤더를 포함한다.
3.5 일부분만 받는 레인지 리퀘스트
- 오늘날은 인터넷과 통신의 발달로 대용량의 데이터를 받기 쉬웠지만 과거에는 그렇지 않았다.
- 중간에 전송이 끊어질 경우를 대비한 기술이 바로 레인지 리퀘스트이다.
- 요청할 때 Range 헤더 필드를 이용해서 요청할 엔티티의 범위를 지정하는 방식이다.
- 상태 코드는
206으로
응답하고 복수 범위는multilpart/byteranges
로 응답한다.
3.6 최적의 콘텐츠를 돌려주는 콘텐츠 네고시에이션
- 같은 콘텐츠이지만 여러 개의 페이지를 가진 웹 페이지가 존재한다.
- 클라이언트에 더욱 적절한 리소스를 제공하는 것이
Content Negotiation
이다. - 언어와 문자, 인코딩 등을 기준으로 제공한다. 서버가 알아서 하기도, 클라이언트 요청에 따라 동작하기도 한다.
😋 지극히 개인적인 블로그지만 훈수와 조언은 제 성장에 도움이 됩니다 😋
'개인 공부 > Network (그림으로 배우는 Http&Network Basic)' 카테고리의 다른 글
Http&Network Basic : HTTP 헤더 (6장) (0) | 2023.06.20 |
---|---|
Http&Network Basic : HTTP와 연계하는 웹 서버 (5장) (0) | 2023.06.13 |
Http&Network Basic : 결과를 전달하는 HTTP 상태 코드 (4장) (0) | 2023.06.06 |
Http&Network Basic : 간단한 프로토콜 HTTP (2장) (0) | 2023.05.30 |
Http&Network Basic : 웹과 네트워크의 기본 (1장) (2) | 2023.05.30 |
댓글