- POST 메소드와 PUT 메소드는 HTTP 요청 방식(Method)에 사용될 때, 클라이언트가 웹서버에게 어떤 데이터를 전달하고자 할때 사용
- Expect 헤더는 클라이언트가 웹서버에게 어떤 데이터를 전달하고자 할때, 사용되는 헤더
- Expect 헤더는 "돌다리도 두들고 보고 건너라 "에 속하는 헤더
- 클라이언트가 웹서버에 데이터를 전달할때, TCP 3-way handshake를 통해 세션이 맺어지면 HTTP 통신할 준비가 되었다고 보고 바로 전달하려는 데이터를 보낼 것
- 웹서버가 클라이언트에게 전달받아서 처리할 수 있는 데이터의 사이즈가 고정 → 클라이언트는 전송할 수 있는 데이터 사이즈를 확인하고 보내야 보다 안전하고 정확하게 전달 가능(Expect 헤더 기능)
- Expect 헤더를 사용하면, 서버가 처리불가능한 데이터(payload)는 보내지 않게 되므로, 불필요한 네트워크 대역폭 사용의 낭비를 줄일 수 있음
- 일반적인 브라우저는 Expect 헤더를 전송하지 않지만, cURL과 같은 몇가지 클라이언트들은 전송함
문법 → 현재는 "100-continue" 를 제외하고 어떤 Expect 헤더의 값에 사용 X
Expect: 100-continue
Expect 헤더를 추가하여 클라이언트와 웹 서버간 통신하는 방식
- 클라이언트가 전달할 데이터가 있는데, 처리 가능한지를 서버에게 확인 요청. (Expect 헤더 사용)
- 서버는 가능한 경우 클라이언트에게 100 Continue 응답 코드를 통해 알림 (100 Continue)
- 클라이언트가 데이터를 서버에게 전송
- 서버는 클라이언트에게 정상적으로 처리되었음을 알림
webdav 서버에서 Expect 헤더를 추가하여 테스트 (제한한 데이터 사이즈보다 작은 데이터 전송)
- webdav서버의 upload 파일용량을 1024 byte로 제한
- 클라이언트가 WEBDAV 서버에 I love you 라는 텍스트가 담긴 파일을 업로드
- 페이로드 사이즈(payload)가 1024 보다 작기 때문에 정상적으로 서버에 생성되었음을 응답코드(201 Created)를 통해 확인 가능
webdav 서버에서 Expect 헤더를 추가하여 테스트 (제한한 데이터 사이즈보다 큰 데이터 전송)
- webdav서버의 upload 파일용량을 1024 byte로 제한
- 데이터 사이즈를 웹서버의 제한용량보다 크게 설정 → 컨텐츠 사이즈를 1029 로 설정
- 웹서버에서 100 continue가 아닌 "413 Request Entity Too Large"라는 에러코드를 보내고 세션을 끊음
- 웹서버에서 처리할 수 있는 용량을 초과할 경우 불필요한 데이터 전송이 이루어 지지 않음
'HTTP > HTTP 헤더' 카테고리의 다른 글
HTTP 프로토콜 Host 헤더(추가 내용 : 가상호스트와 리다이렉션) (0) | 2022.06.25 |
---|---|
HTTP 프로토콜 Expires 헤더 (0) | 2022.06.25 |
HTTP 프로토콜 ETag 헤더 (0) | 2022.06.25 |
HTTP 프로토콜 Date 헤더 (0) | 2022.06.25 |
HTTP 프로토콜 Content-Type 헤더 (0) | 2022.06.25 |