WGET가 HTTP 100- 컨티인 링 응답을 처리하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/126711

  •  02-07-2019
  •  | 
  •  

문제

HTML (파일에 포함)을 사용하여 URL에 게시하려고합니다. wget 이와 같이:

wget -O- --debug
     --header=Content-Type:text/html
     --post-file=index.html
     http://localhost/www/encoder.ashx

HTML이 게시되는 URL은 ASP.NET을 사용하여 구현 된 웹 응용 프로그램 엔드 포인트입니다. 서버는 a로 응답합니다 100 (계속) 응답과 wget은 단순히 진짜 그 반응 ~해야 한다 다음을 따르십시오.

wget은 어떻게 든 100 (계속) 응답을하라고 말할 수 있습니까? 아니면 이것이 도구의 잘 알려진 한계입니까?

메모:

  • 나는 wget이 절대 보내지 않는다는 것을 알았다 Expect: 100-Continue 헤더는 기술적으로 서버가 100 (계속) 응답을 발행해서는 안됩니다.

    업데이트: 이것은 가능하다고 생각합니다 §8.2.3RFC 2616 (하이퍼 텍스트 전송 프로토콜 -HTTP/1.1):

    요청 메시지에 "100-continue"기대치가 포함 된 기대 요청 헤더 필드가 포함되어 있지 않으면 Origin Server는 100 (계속) 응답을 보내지 않아야하며, 그러한 요청이 온 경우 100 (계속) 응답을 보내지 않아야합니다. HTTP/1.0 (또는 이전) 클라이언트. 이 규칙에는 예외가 있습니다. RFC 2068과의 호환성. 서버는 "100- 계속 된"기대치가 포함 된 기대 요청 헤더 필드가 포함되지 않는 HTTP/1.1 PUT 또는 POST 요청에 대한 응답으로 100 (계속) 상태를 보낼 수 있습니다. 이 예외는 100 (계속) 상태에 대한 선언 대기 대기와 관련된 클라이언트 처리 지연을 최소화하는이 예외는 HTTP/1.1 요청에만 적용되며 다른 HTTP 버전 값과의 요청이 아닙니다.

  • 곱슬 곱슬하다 그러한 거래에 문제가 없습니다. 그것은 an을 보냅니다 Expect: 100-Continue 헤더 및 실제 응답에 대한 100 (계속) 응답으로 계속했습니다.

자세한 내용은 다음은 위에 표시된 호출에서 트랜잭션의 전체 디버그 추적입니다.

Setting --post-file (postfile) to index.html
Setting --header (header) to Content-Type:text/html
DEBUG output created by Wget 1.10 on Windows.

--13:29:17--  http://localhost/www/encoder.ashx
           => `-'
Resolving localhost... seconds 0.00, 127.0.0.1
Caching localhost => 127.0.0.1
Connecting to localhost|127.0.0.1|:80... seconds 0.00, connected.
Created socket 296.
Releasing 0x01621a10 (new refcount 1).

---request begin---
POST /www/encoder.ashx HTTP/1.0
User-Agent: Wget/1.10
Accept: */*
Host: localhost
Connection: Keep-Alive
Content-Type: text/html
Content-Length: 30984

---request end---
[writing POST file index.html ... done]
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 100 Continue
Server: ASP.NET Development Server/9.0.0.0
Date: Wed, 24 Sep 2008 11:29:17 GMT
Content-Length: 0

---response end---
100 Continue
Closed fd 296
13:29:17 ERROR 100: Continue.
도움이 되었습니까?

해결책

Windows 용 WGET 소스 코드를 살펴 보았습니다. WGET가 응답을 제대로 구문 분석하지 못하면 디버그 출력이 일반 오류 조건에서 나온다고 알 수 있습니다. 이것은 WGET의 제한 일 뿐이 므로이 문제를 피하기 위해 CURL 또는 다른 방법을 사용해야 할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top