كيفية جعل Wget يتعامل مع استجابة HTTP 100-Continue؟

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

عنوان URL الذي يتم نشر HTML إليه هو نقطة نهاية تطبيق ويب يتم تنفيذها باستخدام ASP.NET.يرد الخادم بـ أ 100 (تابع) Response ويتوقف Wget ببساطة في مساراته بدلاً من الاستمرار في حقيقي الرد على ذلك يجب اتبع التالي.

هل يمكن أن يُطلب من Wget بطريقة ما التعامل مع استجابة 100 (متابعة) أم أن هذا هو أحد القيود المعروفة للأداة؟

ملحوظات:

  • لقد لاحظت أن WGT لا يرسل أبدًا Expect: 100-Continue من الناحية الفنية ، يجب ألا يصدر الخادم استجابة 100 (متابعة).

    تحديث: يبدو أن هذا ممكن، حسب §8.2.3 ل RFC 2616 (بروتوكول نقل النص التشعبي - HTTP/1.1):

    لا ينبغي أن يرسل خادم الأصل استجابة 100 (متابعة) إذا لم تتضمن رسالة الطلب حقل متوقع للرئيس المتوقع مع توقع "100-استئصال" ، ويجب ألا يرسل استجابة 100 (متابعة) إذا جاء هذا الطلب من عميل HTTP/1.0 (أو سابق).هناك استثناء لهذه القاعدة:للتوافق مع RFC 2068 ، قد يرسل الخادم حالة 100 (متابعة) استجابةً للتوقعات HTTP/1.1 PUT أو POST التي لا يتضمن حقلًا للرئيس المتوقع مع توقع "100- متابعة". هذا الاستثناء ، الغرض منه هو تقليل أي تأخير معالجة العميل المرتبط بانتظار غير معلن عن حالة 100 (متابعة) ، ينطبق فقط على طلبات HTTP/1.1 ، وليس للطلبات مع أي قيمة إصدار HTTP-.

  • لفة ليس لديه مشاكل مع مثل هذه الصفقة.فإنه يرسل 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.
هل كانت مفيدة؟

المحلول

لقد نظرت إلى الكود المصدري لـ wget لنظام التشغيل Windows، وبقدر ما أستطيع أن أقول أن إخراج التصحيح يأتي من حالة الخطأ العامة عندما يفشل wget في تحليل الاستجابة بشكل صحيح.يبدو أن هذا مجرد قيد على wget، لذلك ربما يتعين عليك استخدام حليقة أو طريقة أخرى لتجنب مواجهة هذه المشكلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top