مرجع HTTP
شناسه پست: 3744
بازدید: 1024

این مقاله شامل تمام Reference های HTTP است. اگر میخواهید سریع معنی هریک از کدهای وضعیت HTTP را پیدا کنید، این مرجع HTTP می تواند برای شما مفید باشد. این همچنین نوعی برگه تقلب برای خودم است زیرا اطلاعات زیادی وجود دارد که باید به خاطر بسپارم. پس امیدوارم برای شما هم مفید باشد.

شما می توانید مرجع HTTP را پیدا کنید:

لیست متدهای Request در Http (verb ها)

متدهای Request

متدتوضیحاتآیا body دارد؟
CONNECTاین مشخصات نام متد CONNECT را برای استفاده با پروکسی رزرو می‌کند که می‌تواند به صورت پویا به تونل تبدیل شود (مانند تونل‌سازی SSL).خیر
DELETEمتد DELETE از سرور مبدا درخواست می کند که منبع شناسایی شده توسط Request-URI را حذف کند.خیر
GETمتد GET هر اطلاعاتی را که توسط Request-URI شناسایی شده است (به شکل یک موجودیت) بازیابی می کند.خیر
HEADروش HEAD با GET یکسان است با این تفاوت که سرور نباید بدنه پیام را در پاسخ برگرداند.خیر
OPTIONSمتد OPTIONS یک درخواست برای اطلاعات در مورد گزینه های ارتباطی موجود در زنجیره request/response شناسایی شده توسط Request-URI را ارائه می دهد.خیر
POSTمتد POST برای درخواست از سرور مبدأ استفاده می شود که سرور، موجودیت محصور شده در درخواست را به عنوان یک عضو جدید از منبع شناسایی شده توسط Request-URI در Request-Line میپذیرد.بله
PUTمتد PUT درخواست می کند که موجودیت محصور شده تحت Request-URI ارائه شده ذخیره شود.بله
TRACEسرور داده‌های ارسال شده را دقیقا به کلاینت یا درخواست کننده باز می‌ گرداند.خیر

کدهای Status

این دو جدول، محدوده کد وضعیت (طبقه بندی) را تعریف می کنند و همه کدهای وضعیت را توصیف می کنند.

طبقه بندی کدهای Status

محدوده کلی محدوده تعریف شده طبقه بندی
100-199 100-101 اطلاعاتی
200–299 200–206 موفقیت آمیز
300–399 300–305 Redirection
400–499 400–415 خطای کلاینت
500–599 500–505 خطای سرور

کدهای Status

کد Status  دلیل معنی
100 Continue قسمت اولیه درخواست دریافت شد و کلاینت باید ادامه دهد.
101 Switching Protocols سرور در حال تغییر پروتکل‌ها است، همانطور که توسط کلاینت مشخص شده است، به یکی از گزینه های فهرست‌شده‌ در header ارتقا یافته.
200 OK درخواست بدون مشکل است.
201 Created resource ایجاد شد (برای درخواستهایی که آبجکتهای سرور را ایجاد میکند)
202 Accepted درخواست پذیرفته شد، اما سرور هنوز هیچ اقدامی با آن انجام نداده است.
203 Non-Authoritative Information تراکنش درست بود، به جز اطلاعات موجود در header های موجودیت که از سرور مبدا نبود، بلکه از یک کپی از resource بود.
204 No Content پیام response حاوی headers و یک خط status است، اما هیچ body از موجودیت وجود ندارد.
205 Reset Content کد دیگری که در درجه اول برای مرورگرها است. اساساً به این معنی است که مرورگر باید تمام عناصر فرم HTML را در صفحه فعلی پاک کند.
206 Partial Content یک درخواست Partial با موفقیت انجام شد.
300 Multiple Choices یک کلاینت یک URL درخواست کرده است که در واقع به چندین resource اشاره دارد. این کد همراه با لیستی از گزینه ها برگردانده می شود. سپس کاربر می تواند انتخاب کند که کدام یک را می خواهد.
301 Moved Permanently URL درخواستی منتقل شده است. response باید حاوی URL موقعیت مکانی باشد که نشان می دهد response در حال حاضر در کجا قرار دارد.
302 Found مانند کد وضعیت 301 است، اما انتقال موقت است. کلاینت باید از URL داده شده در سرصفحه Location برای مکان یابی response به طور موقت استفاده کند.
303 See Other به client می گوید که response باید با استفاده از یک URL دیگر واکشی شود. این URL جدید در Location header پیام response است.
304 Not Modified کلاینتها می توانند درخواست های خود را با header های request که شامل می شوند مشروط کنند. این کد نشان می دهد که resource تغییر نکرده است.
305 Use Proxy resource باید از طریق یک Proxy قابل دسترسی باشد، مکان Proxy در هدر Location آورده شده است.
306 (Unused) این کد status در حال حاضر استفاده نمی شود.
307 Temporary Redirect مانند کد وضعیت 301؛ با این حال، کلاینت باید از URL داده شده در هدر Location برای مکان یابی resource به طور موقت استفاده کند.
400 Bad Request به کلاینت می گوید که یک درخواست نادرست ارسال کرده است.
401 Unauthorized پاسخ برگشتی همراه با header های مناسبی که از مشتری می خواهند قبل از دسترسی به resource، خود را احراز هویت کند.
402 Payment Required در حال حاضر از این کد status استفاده نمی شود، اما برای استفاده در آینده کنار گذاشته شده است.
403 Forbidden این درخواست توسط سرور رد شده است.
404 Not Found سرور نمی تواند URL درخواستی را پیدا کند.
405 Method Not Allowed درخواست با متدی انجام شده است که برای URL درخواستی پشتیبانی نمی‌شود. هدر Allow باید در response گنجانده شود تا به کلاینت بگوید که چه متدهایی در response درخواستی مجاز هستند.
406 Not Acceptable کلاینتها می توانند پارامترهایی را در مورد انواع entity هایی که مایل به پذیرش هستند را مشخص کنند. این کد زمانی استفاده می شود که سرور هیچ response مطابق با URL قابل قبول برای کلاینت نداشته باشد.
407 Proxy Authentication Required مانند کد وضعیت 401، اما برای سرورهای proxy که برای یک resource نیاز به احراز هویت دارند استفاده می شود.
408 Request Timeout اگر یک کلاینت طول بکشد تا درخواست خود را تکمیل کند، سرور می تواند این کد status را بازگرداند و اتصال را قطع کند.
409 Conflict درخواست باعث ایجاد conflict در یک resource می شود.
410 Gone مانند کد وضعیت 404، با این تفاوت که سرور زمانی resource را در اختیار داشت.
411 Length Required سرورها زمانی از این کد استفاده می کنند که در پیام request به هدر Content-Length نیاز دارند. سرور درخواست های resource را بدون هدر Content-Length نمی پذیرد.
412 Precondition Failed اگر یک کلاینت یک درخواست شرطی ایجاد کند و یکی از شرایط ناموفق باشد، این کد پاسخ برگردانده می شود.
413 Request Entity Too Large کلاینت یک entity body را ارسال کرده است که بزرگتر از آن چیزی است که سرور بتواند یا بخواهد پردازش کند.
414 Request URI Too Long کلاینت یک درخواست با URL را ارسال کرده است که بزرگتر از آنچه سرور می تواند یا می خواهد پردازش کند.
415 Unsupported Media Type کلاینت entity از content type را ارسال کرده است که سرور آن را درک یا پشتیبانی نمی کند.
416 Requested Range Not Satisfiable پیام request، محدوده ای از یک resource معین را درخواست کرده است و آن محدوده یا نامعتبر بوده یا اینکه نمی توانست برآورده شود.
417 Expectation Failed این درخواست شامل انتظاراتی در هدر request مورد انتظار بود که توسط سرور برآورده نمی شد.
500

Internal Server Error سرور با خطایی مواجه شد که مانع از سرویس دهی درخواست شد.
501 Not Implemented کلاینت درخواستی را ارائه داده که فراتر از توانایی سرور است.
502 Bad Gateway سروری که به عنوان یک پروکسی یا gateway عمل می کند با یک پاسخ جعلی از لینک بعدی در زنجیره response درخواست مواجه شده است.
503 Service Unavailable سرور در حال حاضر نمی تواند درخواست را سرویس دهد، اما در آینده قادر خواهد بود.
504 Gateway Timeout مشابه کد وضعیت 408، با این تفاوت که پاسخ از یک gateway یا پروکسی می آید که زمان انتظار برای response به درخواست خود از سرور دیگری به پایان رسیده است.
505 HTTP Version Not Supported سرور درخواستی را در نسخه ای از پروتکل دریافت کرده است که نمی تواند یا نمیخواهد آن را پشتیبانی کند.

منبع: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

Header ها

هر دو HTTP request و HTTP response می توانند شامل فیلدهای header باشند. این دو جدول این فیلدها را توصیف میکنند و مثال های ساده ای را ارائه می دهند.

Request Header ها

فیلد توضیح مثال
Accept می تواند برای تعیین انواع رسانه های خاص که برای response قابل قبول هستند استفاده شود Accept: text/plain
Accept-Charset تعیین میکند که چه مجموعه کاراکترهایی برای response قابل قبول هستند Accept-Charset: utf-8
Accept-Encoding مشابه Accept است، اما کدگذاری محتوا را که در response قابل قبول است را محدود می کند. Accept-Encoding: gzip, deflate
Accept-Language مشابه Accept است، اما مجموعه زبان‌های طبیعی را که به عنوان response برگزیده می‌شوند را محدود می‌کند. Accept-Language: en-US
Authorization گواهی احراز هویت برای احراز هویت HTTP. Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cache-Control برای تعیین دستورالعمل هایی استفاده می شود که باید توسط تمام مکانیزم های ذخیره سازی در طول زنجیره request-response رعایت شود. Cache-Control: no-cache
Connection به فرستنده اجازه می‌دهد تا گزینه‌هایی را مشخص کند که مختص آن اتصال خاص مورد نظر هستند و نباید توسط پراکسی‌ها در اتصالهای بعدی ارتباط برقرار کنند. Connection: keep-alive
Content-Encoding Content-Encoding اساساً برای این که اجازه دهد یک سند بدون از دست دادن هویت نوع رسانه اصلی آن فشرده شود، استفاده می شود. Content-Encoding: gzip
Cookie یک کوکی HTTP که قبلاً توسط سرور با Set-Cookie ارسال شده است. Cookie: $Version=1;
Content-Length طول body درخواست بر حسب هشت بیت (بایت 8 بیتی). Content-Length: 1024
Content-MD5 مجموع باینری MD5 کدگذاری شده با Base64 از محتوای body درخواست. Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
Content-Type نوع MIME بدنه درخواست (برای درخواست‌های POST و PUT استفاده می‌شود). Content-Type: application/ x-www-form-urlencoded
Date تاریخ و ساعت ارسال پیام Date: Tue, 19 Jun 2012 10:10:10 GMT
Expect نشان می دهد که رفتارهای خاص سرور توسط کلاینت مورد نیاز است. Expect: 100-continue
From آدرس ایمیل کاربر درخواست کننده From: expertmarket@info.ir
Host نام دامنه سرور (برای میزبانی مجازی)، و شماره پورت TCP که سرور به آن گوش می دهد. اگر پورت، پورت استاندارد برای سرویس درخواستی باشد، ممکن است شماره پورت حذف شود. از زمان HTTP/1.1 الزامی میباشد. Host: expertmarket.ir
If-Match فقط در صورتی action مورد نظر را انجام دهید که موجودیت ارائه شده کلاینت با همان موجودیت در سرور مطابقت داشته باشد. این عمدتاً برای متدهایی مانند PUT است که فقط یک resource را در صورتی به‌روزرسانی می‌کنند که از آخرین باری که کاربر آن را به‌روزرسانی کرده است، اصلاح نشده باشد. If-Match: “737060cd8c284d8af7ad3082f209582d”
If-Modified- Since اجازه می دهد تا در صورتیکه محتوا تغییر نکرده است، یک 304 Not Modified برگردانده شود. If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
If-None-Match اجازه می دهد تا در صورتیکه محتوا تغییر نکرده است، یک 304 Not Modified برگردانده شود. If-None-Match: “737060cd8c284d8af7ad3082f209582d”
If-Range اگر entity بدون تغییر است، قسمت(هایی) را که از دست داده ام را برای من ارسال کنید. در غیر این صورت، کل entity جدید را برای من ارسال کنید. If-Range: “737060cd8c284d8af7ad3082f209582d”
If-Unmodified- Since فقط در صورتی response را ارسال کنید که entity از زمان مورد نظر تغییر نکرده باشد. If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT
Max-Forwards تعداد دفعاتی که پیام را می توان از طریق پروکسی ها یا gateway ها ارسال کرد، محدود کنید. Max-Forwards: 10
Origin درخواستی را برای اشتراک‌گذاری منابع cross-origin آغاز می‌کند (از سرور فیلد پاسخ «Access-Control-Allow-Origin» می‌خواهد). Origin: http://code-maze.com
Pragma Header های ویژه پیاده سازی که ممکن است اثرات مختلفی در هر نقطه از زنجیره request-response داشته باشند. Pragma: no-cache
Proxy- Authorization اعتبار مجوز برای اتصال به یک پروکسی. Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Range فقط بخشی از یک موجودیت را درخواست میکند. بایت ها از 0 شماره گذاری می شوند. Range: bytes=500-999
Referer این آدرس صفحه وب قبلی است که از آن، یک پیوند به صفحه درخواستی فعلی دنبال شده است. (کلمه “referrer”  در RFC و همچنین در اکثر پیاده سازی ها اشتباه نوشته شده است.) Referer: https://expertmarket.ir
TE کدهای انتقالی که user agent مایل به پذیرش است. TE: trailers, deflate
Upgrade از سرور میخواهد که به پروتکل دیگری ارتقا یابد. Upgrade: HTTPS/1.3, IRC/6.9, RTA/x11, websocket
User-Agent رشته user agent از user agent User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0
Via به سرور پروکسی هایی که درخواست از طریق آنها ارسال شده است اطلاع می دهد. Via: 1.0 fred, 1.1 example.com (Apache/1.1)
Warning یک warning کلی در مورد مشکلات احتمالی با body موجودیت. Warning: 199 Miscellaneous warning

Response Header ها

فیلد توضیحات مثال
Access-Control-Allow-Origin تعیین میکند که کدام وب‌سایت‌ها می‌توانند در اشتراک‌گذاری منابع cross-origin شرکت کنند Access-Control-Allow- Origin: *
Accept-Ranges به سرور اجازه می دهد تا پذیرش محدوده درخواست ها را برای یک resource تعیین کند. Accept-Ranges: bytes
Age مدت زمان تخمینی که response (یا اعتبارسنجی مجدد آن) در سرور مبدا ایجاد شده است را نقل میکند. Age: 24
Allow مجموعه ای از متد های پشتیبانی شده توسط resource شناسایی شده توسط Request-URI را فهرست می کند. هدف از این فیلد، اطلاع رسانی دقیق به گیرنده متدهای معتبر مرتبط با resource است. Allow: GET, HEAD, PUT
Cache-Control همه مکانیزم‌های cache را از سرور به کلاینت می‌گوید که آیا میخواهند این آبجکت را در حافظه پنهان ذخیره کنند یا خیر. در کسری از ثانیه سنجیده می شود. Cache-Control: max-age=3600
Connection آپشنهایی که برای اتصال، مطلوب هستند Connection: close
Content-Encoding نوع رمزگذاری مورد استفاده در داده ها. فشرده سازی HTTP را ببینید. Content-Encoding: gzip
Content-Language تعیین نمودن زبان مربوط به محتوا Content-Language: en
Content-Length طول بدنه پاسخ بر حسب هشت بیت (بایت 8 بیتی) Content-Length: 1024
Content-Location یک مکان جایگزین برای داده های برگشتی Content-Location: /index.htm
Content-MD5 یک مجموع باینری MD5 کدگذاری شده با Base64 از محتوای response Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
Content-Disposition فرصتی برای ایجاد یک کادر دیالوگ “File Download” برای یک MIME type شناخته شده با فرمت باینری یا پیشنهاد نام فایل برای محتوای پویا. نقل قول با کاراکترهای خاص ضروری هستند. Content-Disposition: attachment; filename=”fname.ext”
Content-Range این پیام جزئی در پیام کامل body به کجا تعلق دارد Content-Range: bytes 21010-47021/47022
Content-Type MIME type این محتوا Content-Type: text/html; charset=utf-8
Date تاریخ و زمانی که پیام فرستاده شده بود Date: Sun, 17 Jun 2017 10:11:12 GMT
ETag یک شناسه برای یک نسخه خاص از یک resource، اغلب یک خلاصه پیام ETag: “737060cd8c284d8af7ad3082f209582d”
Expires تاریخ/زمان expire شدن response را تعیین میکند Expires: Date: Sun, 17 Jun 2017 10:11:12 GMT
Last-Modified آخرین تاریخ تغییر برای آبجکت درخواستی، در قالب RFC 2822 Last-Modified: Date: Sun, 17 Jun 2017 10:11:12 GMT
Link برای بیان کردن نوع رابطه با resource دیگر استفاده میشود که در آن نوع رابطه با RFC 5988 تعریف شده است. Link: ; rel=”alternate”
Location در تغییر مسیر یا زمانی که یک resource جدید ایجاد شده است استفاده می شود. Location: https://expertmarket.ir/index.html
P3P این Header قرار است خط‌ مشی پلتفرم پروژه اولویت‌های حریم خصوصی (P3P) را در قالب P3P:CP=”your_compact_policy” تنظیم کند. با این حال، P3P حذف نشد، اکثر مرورگرها هرگز آن را به طور کامل پیاده‌سازی نکرده‌اند، بسیاری از وب‌سایت‌ها این هدر را با متن خط‌مشی جعلی تنظیم می‌کنند، که برای فریب دادن وجود خط‌مشی P3P به مرورگرها و دادن مجوز برای کوکی‌های شخص ثالث کافی بود. P3P: CP=”This is not a P3P policy! See http://www.google.com/support/ accounts/bin/answer.py?hl=en&answer=151657 for more info.”
Pragma Header های مخصوص پیاده سازی که ممکن است اثرات مختلفی در هر نقطه از زنجیره request-response داشته باشند. Pragma: no-cache
Proxy-Authenticate احراز هویت Request برای دسترسی به proxy Proxy-Authenticate: Basic
Refresh در redirection یا زمانی که یک resource جدید ایجاد شده است استفاده می شود. این Refresh پس از 5 ثانیه redirect می دهد. این یک header extension اختصاصی و غیر استاندارد است که توسط Netscape معرفی شده و توسط اکثر مرورگرهای وب پشتیبانی می شود. Refresh: 5; url=https://expertmarket.ir/index.html
Retry-After اگر یک entity به طور موقت در دسترس نباشد، این به کلاینت دستور می دهد تا پس از یک دوره زمانی مشخص (ثانیه) دوباره تلاش کند. Retry-After: 240
Server یک نام برای سرور Server: Apache/2.4 (Unix)
Set-Cookie یک HTTP Cookie را set میکند Set-Cookie: UserID=1; Max-Age=3600; Version=1
Strict-transfer-Security یک خط‌مشی HSTS که به کلاینت HTTP اطلاع می‌دهد که چه مدت باید خط‌مشی فقط HTTPS را در حافظه پنهان نگه دارد و اینکه آیا این خط‌مشی برای زیر دامنه‌ها اعمال می‌شود یا خیر. Strict-transfer-Security: max-age=16070400; includeSubDomains
Trailer مقدار فیلد عمومی Trailer نشان می‌دهد که مجموعه داده‌شده از فیلدهای Header در Trailer پیام کدگذاری شده با کدگذاری انتقال chunked وجود دارد. Trailer: Max-Forwards
Transfer-Encoding شکل رمزگذاری مورد استفاده برای انتقال ایمن موجودیت به کاربر. متدهای تعریف شده در حال حاضر عبارتند از: chunked، compress، deflate، gzip، identity. Transfer-Encoding: chunked
Vary به پراکسی‌های پایین‌دستی می‌گوید که چگونه request header های آینده را مطابقت دهند تا تصمیم بگیرند که آیا پاسخ ذخیره شده در حافظه پنهان می‌تواند به جای درخواست یک پاسخ جدید از سرور مبدا استفاده شود یا خیر. Vary: *
Via به مشتری از پروکسی هایی که response از طریق آنها ارسال شده است اطلاع می دهد. Via: 1.0 mick, 1.1 baselogic.com (Apache/2.4)
Warning یک هشدار کلی در مورد مشکلات احتمالی با body موجودیت. A general warning about possible problems with the entity body.
WWW-Authenticate scheme احراز هویت را نشان می دهد که باید برای دسترسی به موجودیت درخواستی استفاده شود. WWW-Authenticate: Basic

منبع: https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

MIME Type ها

به دلیل تعداد زیاد انواع رسانه های اینترنتی، فقط رایج ترین آنها در اینجا لیست شده اند.

MIME Type های اصلی

نوع توضیح
application Application-specific content format (discrete type)
audio Audio format (discrete type)
chemical Chemical data set (discrete IETF extension type)
image Image format (discrete type)
message Message format (composite type)
model 3-D model format (discrete IETF extension type)
multipart Collection of multiple objects (composite type)
text Text format (discrete type)
video Video movie format (discrete type)

MIME Type های Application 

نوع توضیح
application/atom+xml Atom Feeds
application/ecmascript ECMAScript/JavaScript (equivalent to application/javascript but with stricter processing rules)
application/json JavaScript Object Notation JSON
application/javascript ECMAScript/JavaScript (equivalent to application/ecmascript but with looser processing rules) It is not accepted in IE 8 or earlier
application/octet-stream Unclassified binary data.
application/pdf Portable Document Format
application/postscript PostScript
application/rss+xml RSS feeds
application/soap+xml SOAP
application/font-woff Web Open Font Format
application/xhtml+xml XHTML
application/xml-dtd Document Type Definition (DTD) files
application/xop+xml XML-binary Optimized Packaging (XOP)
application/zip ZIP archive files
application/gzip Gzip

MIME Type های Multipart 

نوع توضیح
multipart/mixed MIME Email
multipart/form-data MIME Webform

MIME Type های Text 

نوع توضیح
text/css Cascading Style Sheets.
text/csv Comma-separated values
text/html HTML file
text/plain Textual data
text/xml Extensible Markup Language

منبع: https://www.iana.org/assignments/media-types/media-types.xhtml

همه موارد ذکر شده در این مقاله مرجع را می توان با جزئیات بیشتر در سند مشخصات HTTP1.1 پیدا کرد:

http://www.ietf.org/rfc/rfc2616.txt

نویسنده

امید عباسی
من امید عباسی هستم. سالهاست که در زمینه برنامه نویسی با تکنولوژی دات نت فعالیت میکنم و عاشق این هستم که تجربیات و دانش خودم را در این زمینه با دیگران به اشتراک بزارم. خیلی دوست دارم که نظر و انتقاد خودتون رو در مورد این نوشته برای من بنویسید تا بتونم در آینده، مطالب بهتر و ارزشمندتری را برای شما فراهم کنم. در صورت داشتن هرگونه سوال هم در قسمت دیدگاه ها میتونید با بنده در ارتباط باشید