• 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"라는 에러코드를 보내고 세션을 끊음
  • 웹서버에서 처리할 수 있는 용량을 초과할 경우 불필요한 데이터 전송이 이루어 지지 않음

+ Recent posts