HTTP 블록 전송

4386 단어 http
HTTP 블록 전송
용도.
HTTP 헤드 를 보 내기 전에 Content-Length 의 HTTP 요청 및 답장(예 를 들 어 WEB 서버 에서 발생 하 는 동적 내용)을 계산 할 수 없습니다.블록 전송 을 사용 하여 모든 데이터 가 발생 한 후에 Content-Length 가 있 는 HTTP 헤드 를 보 내지 않 고 이미 발생 한 데 이 터 를 하나씩 보 낼 수 있 습 니 다.
특징:
 
1.HTTP BODY 데 이 터 는 연속 적 인 블록 으로 전 송 됩 니 다.각 데이터 의 시작 부분 은 이 데이터 블록 의 크기 를 가리 키 고 그 다음 에 CRLF,데이터 와 끝 CRLF 입 니 다.
HTTP HEADERS

<CRLF>

1E<CRLF>

DATA1

<CRLF>

ED<CRLF>

DATA2

<CRLF>

0<CRLF>

<CRLF>

이 를 통 해 알 수 있 듯 이 모든 데 이 터 는 두 개의 CRLF 사이 에 포함 되 고 마지막 데 이 터 는 0 CRLFCRLF 이 며 두 개의 CRLF 사이 에는 어떠한 데이터 도 없다.데이터 크기 는 16 진수 문자열 로 표 시 됩 니 다(바 이 너 리 가 아 닙 니 다).
 
2,Transfer-Encoding,TE 머리:
Transfer-Encoding 첫 번 째--수신 자 에 게 BODY 데이터 가 어떤 전송 인 코딩 을 사용 하 는 지 알려 줍 니 다.Transfer-Encoding:chunked 는 블록 전송 을 사용 하 는 지 표시 합 니 다.
TE 첫 번 째--서버 에 어떤 전송 인 코딩 을 사용 할 수 있 는 지 알려 줍 니 다.TE:trailers,chunked 는 블록 전송 및 드래그 를 사용 할 수 있 음 을 나타 냅 니 다.
클 라 이언 트 가 요청 을 보 낼 때 블록 전송 을 사용 할 수도 있 지만 일반 클 라 이언 트 가 요청 을 보 내기 전에 서버 가 블록 전송 을 지원 하 는 지 모 르 기 때문에 클 라 이언 트 는 HTTP 헤드 를 보 내 블록 전송 을 사용 하 는 것 을 표시 할 수 있 습 니 다.서버 가 지원 하지 않 으 면 411(Length Required)오류 로 응답 하고 요청 을 중단 합 니 다.
 
3,HTTP 헤더 드래그
클 라 이언 트 TE 의 첫 번 째 부분 에서 드래그 를 받 아들 일 수 있다 고 설명 하면 마지막 블록 뒤에 드래그 한 Header Entity 를 추가 할 수 있 습 니 다.
서버 에서 발생 하 는 HTTP 답장 에는 Trailer 의 첫 번 째 부분 이 있 고 클 라 이언 트 에 게 이 답장 에 끌 려 있 는 Header Entity 가 어떤 첫 번 째 부분 인지 알려 줍 니 다.Transfer-Encoding,Trailer,Content-Length 첫 번 째 부분 을 제외 하고 다른 HTTP 첫 번 째 부분 은 드래그 앤 드 롭 으로 보 낼 수 있 습 니 다.
HTTP/1.1 200 OK<CRLF>

...

Transfer-Encoding: chunked<CRLF>

Trailer: Content-MD5<CRLF>

<CRLF>

AA<CRLF>

....

<CRLF>

BB<CRLF>

...

<CRLF>

0<CRLF>

<CRLF>

Content-MD5: abcefgjslaa....<CRLF>

참고 서적:
《HTTP 권위 지침 서》
 

좋은 웹페이지 즐겨찾기