1. 단순 전송
Content-length 를 통해 보낼 데이터의 길이를 명시하며 한번에 보내고 한번에 받는다.
ex)
1) 웹 브라우저가 서버에 GET /orderList 요청
2) 서버는 200 OK 와 Content-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 |
댓글