본문 바로가기
HTTP

[10] HTTP 메세지 전송방법 (단순,압축,분할,범위)

by onejunu 2021. 3. 29.

1. 단순 전송

Content-length 를 통해 보낼 데이터의 길이를 명시하며 한번에 보내고 한번에 받는다.

ex)

1) 웹 브라우저가 서버에 GET /orderList 요청

2) 서버는 200 OKContent-length: 3042 를 담고 메세지 본문에 {<html> <header>.... </header>... <body>....</body> </html>} HTML 을 담아서 웹 브라우저로 보냄.

2. 압축 전송

단순 전송과 비슷함. 다만 Content-Length 와 함께 Content-Encoding: gzip 을 헤더에 명시하고 본문에 압축된 메세지를 응답으로서 웹브라우저에 보낸다. Content-Encoding: gzip 은 예시 이며 gzip 외에도 다양한 압축 방식이 있다.

3. 분할 전송

Content-length 가 없다. 대신에 Transfer-Encoding: chunked 로 명시하여 사용한다. 

 

ex)

HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked

5
hello
HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked

5
world
HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked

0
\r\n

\r\n 은 분할 전송의 끝을 알리는 용도임.

4. 범위 전송

 

특정 범위만 요청할 수 있다.

GET /event
Range: bytes=1001-2000

응답은 범위에 해당하는 데이터만 응답한다.

HTTP/1.1 200 OK
Content-Type: text/plain
Content-Range: 1001-2000/2000

asdasdasdasdasdaqweqasd1231

 

'HTTP' 카테고리의 다른 글

[12] HTTP : cache-control  (0) 2021.03.29
[11] HTTP 쿠키  (0) 2021.03.29
[9] HTTP content Negotiation (협상)  (0) 2021.03.29
[8] HTTP Redirection (3xx)  (0) 2021.03.29
[7] 클라이언트에서 서버로 HTTP 데이터 전송 4가지  (0) 2021.03.29

댓글