كيف يتم إرسال المعلمات في طلب HTTP POST؟



2 Answers

يتم وضع المحتوى بعد رؤوس HTTP. تنسيق HTTP POST هو الحصول على رؤوس HTTP ، متبوعة بخط فارغ ، متبوعًا بهيكل الطلب. يتم تخزين متغيرات POST كأزواج قيمة مفتاح في الجسم.

يمكنك رؤية ذلك في المحتوى الخام الخاص بـ HTTP Post ، كما هو موضح أدناه:

POST /path/script.cgi HTTP/1.0
From: frog@jmarshall.com
User-Agent: HTTPTool/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 32

home=Cosby&favorite+flavor=flies

يمكنك رؤية ذلك باستخدام أداة مثل Fiddler ، والتي يمكنك استخدامها لمشاهدة طلب HTTP الأساسي وترسل حمولات الاستجابة عبر السلك.

Question

في طلب HTTP GET ، يتم إرسال المعلمات كسلسلة استعلام :

http://example.com/page?parameter=value&also=another

في طلب HTTP POST ، لا يتم إرسال المعلمات مع URI.

أين القيم؟ في رأس الطلب؟ في نص الطلب؟ كيف تبدو؟




لا يمكنك كتابته مباشرة على شريط عنوان URL للمتصفح.

يمكنك رؤية كيفية إرسال بيانات POST على الإنترنت باستخدام رؤوس HTTP الحية على سبيل المثال. النتيجة ستكون شيء من هذا القبيل

http://127.0.0.1/pass.php
POST /pass.php HTTP/1.1

Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Referer: http://127.0.0.1/pass.php
Cookie: passx=87e8af376bc9d9bfec2c7c0193e6af70; PHPSESSID=l9hk7mfh0ppqecg8gialak6gt5
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 30
username=zurfyx&pass=password

حيث تقول

Content-Length: 30
    username=zurfyx&pass=password

ستكون قيم المشاركة.




يتم إرسال قيم النماذج في HTTP POSTs في نص الطلب ، بنفس تنسيق سلسلة الطلب.

لمزيد من المعلومات ، راجع spec .




Related