전송 방식

조 은길·2022년 3월 17일
0

HTTP 웹 기본 지식

목록 보기
23/32
post-thumbnail

이번 TIL은 인프런의 "모든 개발자를 위한 HTTP 웹 기본 지식"을 학습하고, 정리한 내용입니다.
만약, 제 글의 내용을 퍼갈 시에는 " 모든 개발자를 위한 HTTP 웹 기본 지식 "도 출처에 첨부하시기 바랍니다.


전송 방식의 종류 4가지

HTTP에서 전송하는 방식은 대표적으로 다음과 같다.

  • 단순 전송
  • 압축 전송
  • 분할 전송
    • 쪼개서 전송한다
  • 범위 전송
    • 원하는 범위를 전송한다

단순 전송

요청을 하면, 응답을 주는데, 메세지 바디에 대한 컨텐트 length를 지정하는 거다.

다시 말해서, Content-Length를 알 수 있을 때 쓰는 거다.

단순하게 한 번 요청하고, 한 번에 쭉~ 받는 거다.

압축 전송

예를 들어, 서버에서 gzip같은 거로 압축하면 용량이 확 줄어든다. 보통 절반 이상으로 줄어든다.

대신, 압축을 하면, Content-Encoding이라는 것을 추가로 넣어줘야한다.
=> 뭘로 압축되어 있는지 알아야 하니까, 그래야 클라이언트도 어떻게 압축을 풀지 안다.

그래서, 이것을 압축 전송이라고 한다.

분할 전송

chunked는 덩어리라는 말이다. 즉, 덩어리로 쪼개서 보낸다는 뜻이다.

한 번에 보내면, 로딩 시간이 길어지기 때문에 분할해서 보낸다.

이 경우에는 5 바이트 해서 Hello를 먼저 보낸다. 그러면, 클라이언트는 먼저 이걸 일단 받아볼 수 있다.

그 다음에 또 서버에서 5 바이트가 만들어지면, 또 클라이언트에 보낸다.

이렇게 끝나면, 마지막에는 0 이라고 표시하고, \r\n 은 "끝"이라는 뜻이다.

분할 전송 방식 때는 Content-Length를 넣으면, 안 된다.

왜냐면, Content-Length가 처음에 예상이 안 된다.

범위 전송

이미지를 받는데, 뭔가 중간에 받아가 다운로드가 끊겼다.

이때, 처음부터 다시 요청하면 용량이 아까우니까 범위 전송 같은 경우는 범위를 지정해서 요청한다.

"나는 절반은 받았으니까, 나머지 절반만 보내주세요~"

Content-Range를 통해서, 범위를 설정할 수 있다.

profile
좋은 길로만 가는 "조은길"입니다😁

0개의 댓글