• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
توضیح درمورد خصوصیت setRequestHeader
#1
کد پی‌اچ‌پی:
xmlHttp.setRequestHeader("Content-type""application/x-www-form-urlencoded");
                
xmlHttp.setRequestHeader("Content-length"parameters.length);
                
xmlHttp.setRequestHeader("Connection""close"); 

لطفا این سه خط کد رو برام توضیح بدین و بگین که هر کدوم در چه مواقعی استفاده میشه و مفهومش چیه؟
ممنون
  پاسخ
تشکر شده توسط :
#2
داره header می فرسته برای مرورگر، یعنی به مرورگر میگه در مقابل با این داکیومنت چه رفتاری از خودش نشون بده .
اولی که نوع داکیومنتی که داره ارسال میشه رو میگه،
دومی داره طول داکیومنت رو میگه فکر کنم، مطمئن نیستم،
آخری هم داره کتنکشن رو می بنده،

البته فکر کنم فقط وجود اولی الزامی باشه .
غایب
  پاسخ
تشکر شده توسط : rezi120
#3
اولی زمانی که متد POst هست. و نمی خواهید پارامتر ها در uri ظاهر بشه ازش استفاده میشه. قالبا فرم ها با این روش سابیت می شوند.

دومی مقدار بایت محتوای ارسال شده هست. در بیشتر حالات نیاز هست اعلام کنید مقدار دیتای ارسالی یا دریافتی دقیقا چند بایت یا کیلوبایت هست.

سومی به مرورگر می فهمونه که وقتی درخواست ارسال شد. دیگه منتظر پاسخ نباشه.
  پاسخ
تشکر شده توسط : mohsenkw
#4
(۱۳۹۲ آذر ۲۳, ۰۵:۰۰ ق.ظ)zoghal نوشته: سومی به مرورگر می فهمونه که وقتی درخواست ارسال شد. دیگه منتظر پاسخ نباشه.
تاجاییکه میدونم اینطور نیست.
پاسخ یک درخواست HTTP، درصورت وجود، همیشه دریافت میشه.

ما یه روشی برای افزایش پرفورمنس و جلوگیری از اتلاف منابع و زمان داریم در HTTP/1.1 که در HTTP/1.0 نبود که اون اینه که سرور و مرورگر یا نرم افزارهای دیگر که با HTTP کار میکنن بجای اینکه پشت سر هم چند بار اتصال TCP به سرور برقرار کنن و از هر اتصال برای درخواست و ارسال یک موجودیت (مثلا فایل HTML، CSS، Image و غیره) استفاده کنن، میتونن یک کانکشن TCP رو برای مدت معینی باز نگه دارن و ازش برای ارسال و دریافت چند درخواست و پاسخ HTTP پشت سر هم/مرتبط یا نزدیک هم استفاده کنن.
حالا موقعی که شما هدر Connection: close رو ارسال میکنید، به طرف دیگر ارتباط HTTP صریحا میگید که قصد استفادهء مجدد از این کانکشن TCP رو برای درخواست و پاسخ های HTTP دیگری ندارید و کانکشن TCP پس از کامل شدن درخواست و پاسخ قبلی، بسته میشه.

حالا جزییات دیگرش بماند که حضور ذهن ندارم. مثلا آیا تمام کانکشن های HTTP 1.1 بصورت پیشفرض از نوع persistent هستند یا باید هدر خاصی رو برای این امر ارسال کرد؟ و مثلا اینکه آیا ارسال این هدر Connection: close ضروری است و هدفش چیه؟ (البته هدفش احتمالا جلوگیری از باز ماندن بی مورد کانکشن و اتلاف منابع هست).
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان