منوی ویژه: کیک شکلاتی ASP.NET با نسکافه داغ (قسمت ششم) - نقش HTTP / بخش دوم

نوشته آراد حقی 07 اسفند 1390

در این قسمت از سری مقالات "منوی ویژه: کیک شکلاتی ASP.NET با نسکافه داغ" قصد داریم تا پروتکل HTTP را دقیق‌تر مورد بررسی قرار دهیم. اگر قصد پیگیری این مطالب را دارید می‌توانید از لینک بالا، قسمت‌های قبلی این مقالات را مطالعه کنید.

Cake_6.jpg

به ارتباط برقرار شده از سمت مروگر وب به سمت وب سرور یک درخواست می‌گویند. در ASP.NET، آبجکتی با نام Request وجود دارد که از آن برای برقراری ارتباط از مروگر وب به وب سرور استفاده می‌شود. ASP.NET درخواست‌های منابع را در این آبجکت نگهداری می‌کند که بتوان آن‌ها را به‌راحتی در کد درخواست کرد. با قرار دادن درخواست HTTP در یک آبجکت قابل برنامه نویسی، ASP.NET دسترسی شما را به مواردی نظیر کوکی‌های مرتبط با سایت‌تان، پارامترهای ارسال شده همراه با Query String در یک URL، مسیر یک منبع درخواست شده و کار با اطلاعات مرتبط با یک درخواست را فراهم می‌کند.

ارتباط سمت سرور به کلاینت در قالب آبجکتی تحت عنوان Response گردآوری می‌گردد. با استفاده از این آبجکت می‌توانید کوکی‌های مورد نظر خود را تنظیم نمایید، Cache و تاریخ انقضا برای یک صفحه تعریف کنید و بسیاری کارهای دیگر را انجام دهید. هنگامی که یک وب سرور پاسخی را به یک درخواست ارائه می‌کند، از اطلاعاتی که در آبجکت Response یافت می‌نماید برای تولید پاسخ HTTP مبتنی بر متن مانند آن‌چه در زیر آورده شده است، استفاده می‌نماید.

HTTP/1.1 200 OK
Server: Microsoft-IIS/7.0
Content-Type: text/html
Content-Length: 38
Hello, world.

خط اول این پاسخ، پروتکل ارتباطی و اطلاعات مرتبط با نسخه آن را نمایش می‌دهد. این خط نشان‌دهنده کد وضعیت یک پاسخ و توضیح مرتبط با کد است. کدهای وضعیت سه رقمی هستند و به صورت گروه‌بندی شده در جدول زیر ارائه شده‌اند. حتی اگر نمی‌توانید تمامی کدها را به خاطر بسپارید، یادگیری جدول زیر که توضیحات کدها را به صورت گروهی ارائه کرده است، کمک شایانی به توانایی خطایابی شما خواهد کرد.

کد گروه وضعیت

توضیحات

1xx

اطلاعاتی: درخواست دریافت شده است، و سرور در حال پردازش ادامه درخواست است.

2xx

موفقیت: عملیات مورد نظر با موفقیت دریافت، درک و پذیرش شده است.

3xx

دستور هدایت مجدد (Redirect): کلاینت جهت دریافت منبع دیگری هدایت می‌شود.

4xx

خطای کلاینت: درخواست دارای خطای ساختاری (Syntax) است و یا سرور توانایی ارائه پاسخ مناسب به درخواست را ندارد.

5xx

خطای سرور: سرور توانایی ارائه پاسخ مناسب به درخواستی که به نظر درست می‌رسد را ندارد.

علاوه بر کدهایی که به صورت گروه بندی شده در بالا ارائه شد، HTTP/1.1 تعریف‌هایی منحصر به‌فرد برای هر کد و توضیحات آن ارائه کرده است. جدول زیر لیستی از متداول ترین کدها و دلایل آن‌ها را نشان می‌دهد.

کد وضعیت

دلیل

100

Continue

(ادامه)

200

OK

(تایید)

201

Created

(ایجاد شده)

300

Multiple Choices

(چندین انتخابی)

301

 Moved Permanently

(منتقل شده به صورت دائم)

302

Found

(یافت شده)

400

Bad Request

(درخواست نامناسب)

401

Unauthorized

(غیرمجاز)

403

Forbidden

(ممنوع)

404

Not Found

(بافت نشده)

407

Proxy Authentication Required

(اعتبارسنجی پراکسی مورد نیاز است)

408

Request Time-Out

(زمان دریافت پاسخ به اتمام رسیده)

413

Request Entity too large

(موجودیت درخواست شده بسیار بزرگ است)

500

Internal Server Error

(خطای داخلی سرور)

501

Not Implemented

(پیاده سازی نشده)