فناوری اطلاعات

آخرین دستاورد فناوری اطلاعات

فناوری اطلاعات

آخرین دستاورد فناوری اطلاعات

آموزش شبکه 3

HTTP یک پروتکل با قابلیت های فراوان
HTTP
،‌ پروتکلی با قابلیت های فراوان است که علیرغم برخی محدودیت ها ، دارای سابقه درخشانی در  عرصه شبکه های کامپیوتری ( اینترانت ، اینترنت )  است .
 

HTTP پروتکلی ‌است که امکان ارتباط بین سرویس گیرندگان و سرویس دهندگان وب را فراهم می نماید .
یک سرویس دهنده وب در واقع  به عنوان یک سرویس دهنده HTTP  نیز ایفای وظیفه می نماید .

زمانی که مرورگر وب درخواست یک صفحه را از سرویس دهنده وب می نماید، در واقع یک HTTP request  را ارسال و  سرویس دهنده وب نیز پاسخ آن را با یک HTTP response  خواهد داد  . یک پیام HTTP ، یک درخواست ( request ) و یا پاسخ ( response ) است که از یک ساختار خاص تبعیت می نماید .
HTTP  به یک پروتکل خاص لایه حمل وابستگی نداشته و عموما" از پروتکل TCP استفاده می نماید (پورت شناخته شده 80 ) .

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

عملکرد

کد

 اطلاع رسانی برای استفاده در آینده

1XX

 انجام موفقیت آمیز تراکنش 

2XX

 راهنمائی مجدد

3XX

 بروز خطاء سمت سرویس گیرنده

4XX

 بروز خطاء سمت سرویس دهنده

5XX

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

عملکرد

کد وضعیت

 تراکنش با موفقیت انجام شده است

200

 دستور POST با موفقیت انجام شده است

201

 درخواست ارسالی دریافت گردید.

202

 منبع درخواستی در مکان های مختلفی پیدا شده است

300

 منبع درخواستی به صورت دائم منتقل شده است

301

 منبع درخواستی به صورت موقت  منتقل شده است

302

 درخواست نامناسب از جانب سرویس گیرنده

400

 درخواست غیرمجاز

401

 منبع درخواستی پیدا نگردید

404

 بروز خطاء بر روی سرویس دهنده

500

 متد استفاده شده ، پیاده سازی نشده است

501

 درخواست های سرویس گیرندگان  و دستورات  سرویس گیرندگان وب به منظور استفاده از خدمات سرویس دهندگان وب از مجموعه پتانسیل های ارائه شده ( دستورات )  توسط پروتکل HTTP استفاده می نمایند :

  • GET : سرویس گیرنده وب درخواست یک منبع موجود بر روی سرویس دهنده وب را می نماید .

  • POST : سرویس گیرنده وب اطلاعاتی را برای سرویس دهنده وب ارسال می نماید .

  • PUT : سرویس گیرنده وب یک مستند جایگزین را برای سرویس دهنده وب ارسال می نماید .

  • HEAD : سرویس گیرنده وب اطلاعات  خاصی را در ارتباط با یک منبع موجود بر روی سرویس دهنده  درخواست می نماید ( عدم نیاز به خود منبع ) 

  • DELETE : سرویس گیرنده وب درخواست حذف یک سند موجود بر روی سرویس دهنده را می نماید .

  • TRACE : سرویس گیرندگان وب ، پراکسی مربوط به خود را تعریف می نمایند . از متد فوق اغلب در موارد اشکال زدائی استفاده می گردد .

  • OPTIONS : سایر پتانسیل های موجود به منظور کار بر روی یک سند توسط یک سرویس گیرنده وب درخواست می گردد .

  • CONNECT : سرویس گیرنده وب به عنوان یک پراکسی به یک سرویس دهنده HTTPS متصل می گردد .

در اغلب موارد صرفا" از متد‍ GET و در برخی موارد از HEAD استفاده می گردد ( در صورت اشکال زدائی یک برنامه وب از تمامی امکانات فوق استفاده می شود ) .

مراحل ایجاد یک تراکنش   یک سرویس گیرنده وب قبل از این که بتواند با یک سرویس دهنده وب داده ئی را مبادله نماید ، می بایست با آن ارتباط برقرار نماید . بدین منظور از پروتکل TCP/IP استفاده می گردد . همانگونه که اشاره گردید سرویس گیرنده و سرویس دهنده وب برای ارسال یک درخواست و پاسخ به آن از پروتکل HTTP استفاده نموده و   ارتباط ایجاد شده بین خود را  صرفا" برای یک تراکنش نگهداری می نمایند ( HTTP یک پروتکل Stateless است ) .
فرآیند ایجاد یک تراکنش بین سرویس گیرنده و سرویس دهنده وب را می توان در چهار مرحله زیر خلاصه نمود:

  •  مرحله اول ، برقراری ارتباط : در ابتدا می بایست یک ارتباط و یا اتصال مبتنی بر پروتکل  TCP/IP  بین یک سرویس دهنده و یک سرویس گیرنده وب ایجاد گردد .  به منظور تشخیص نوع پروتکل استفاده شده  ، برنامه ها از یک عدد منحصر بفرد با نام  شماره پورت استفاده می نمایند .( پروتکل FTP از پورت 21 ، پروتکل Telnet از پورت 32 ، پروتکل SMTP از پورت 25 ، پروتکل HTTP از پورت 80 ) .

  • مرحله دوم : ‌ایحاد و یا صدور یک درخواست توسط سرویس گیرنده

  • مرحله سوم : ‌پاسخ سرویس دهنده به درخواست سرویس گیرنده

  • مرحله چهارم ،‌ خاتمه و یا توقف ارتباط : سرویس دهنده مسئولیت خاتمه ارتباط TCP با سرویس گیرنده وب را پس از پاسخ به درخواست سرویس گیرنده برعهده دارد . به منظور برخورد با مسائل غیرقابل پیش بینی ، هم سرویس گیرنده و هم سرویس دهنده می بایست قادر به مدیریت یک ارتباط باشند . مثلا" پس از فعال نمودن دکمه stop در مرورگر ، می بایست به ارتباط ایجاد شده توسط سرویس گیرنده خاتمه داده شود

آموزش شبکه 2

آشنائی با پروتکل HTTP 

در اینترنت همانند سایر شبکه های کامپیوتری از پروتکل های متعدد و با اهداف مختلف استفاده می گردد. هر پروتکل از یک ساختار خاص برای ارسال و دریافت اطلاعات  (بسته های اطلاعاتی ) استفاده نموده و ترافیک مختص به خود را در شبکه ایجاد می نماید .  HTTP  ( برگرفته از Hyper Text Transfer Protocol ) ، یکی از متداولترین پروتکل های لایه application است  که مسئولیت ارتباط بین سرویس گیرندگان و سرویس دهندگان وب را برعهده دارد .
در ادامه با پروتکل فوق بیشتر آشنا خواهیم شد.

پروتکل HTTP چیست ؟دنیای شبکه های کامپیوتری دارای عمری چند ساله است و بسیاری از کاربران ، ضرورت استفاده از شبکه را همزمان با متداول شدن اینترنت در اوایل سال 1990 دریافتند . عمومیت اینترنت، رشد و گسترش شبکه های کامپیوتر‌ی را به دنبال داشته است . اینترنت نیز با سرعتی باورنکردنی رشد و  امروزه شاهد ایجاد ده ها  میلیون وب سایت در طی یک سال در این عرصه می باشیم .
تمامی وب سایت های موجود بر روی‌ اینترنت از پروتکل HTTP استفاده می نمایند . با این که پروتکل HTTP  با استفاده از پروتکل های دیگری نظیر IP و TCP ماموریت خود را انجام می دهد ، ولی این پروتکل HTTP است که به عنوان زبان مشترک ارتباطی بین سرویس گیرنده و سرویس دهنده وب به رسمیت شناخته شده و از‌ آن استفاده می گردد . در واقع مرورگر وب صدای خود را با استفاده از پروتکل HTTP به گوش سرویس دهنده وب رسانده و از وی درخواست یک صفحه وب را می نماید.
به منظور انجام یک تراکنش موفقیت آمیز بین سرویس گیرندگان وب ( نظیر IE )  و سرویس دهندگان وب ( نظیر IIS ) ، به اطلاعات زیادی نیاز خواهد بود . پس از handshake پروتکل TCP/IP ، مرورگر اطلاعات گسترده ای را ‌ برای سرویس دهنده وب  ارسال می نماید . 

توضیحات  : داده مربوط به پروتکل لایه application ( در این مورد خاص پروتکل HTTP ) ، پس از هدر TCP/IP قرار می گیرد  . جدول زیر برخی اطلاعات مبادله شده بین سرویس گیرنده و سرویس دهنده وب را نشان می دهد .

عملکرد

نوع اطلاعات

سرویس گیرنده وب یک درخواست GET را برای سرویس دهنده وب ارسال و از وی درخواست اطلاعاتی را با استفاده از  پروتکل HTTP 1.1 می نماید.
پروتکل HTTP دارای نسخه شماره یک نیز می باشد که امروزه عموما" از نسخه فوق استفاده نمی گردد و در مقابل از نسخه 1 . 1 استفاده می شود.

GET /HTTP/1.1

وب سایتی است که سرویس گیرنده قصد ارتباط با آن را دارد .

Host: www.google.ca

به سرویس دهنده وب ، نوع  نرم افزار سرویس گیرنده ( در این مورد خاص   Mozilla version 5.0 ) و  نوع سیستم عامل نصب شده بر روی کامپیوتر ( در این مورد خاص Windows version NT 5.1 و یا همان ویندوز XP  ) اعلام می گردد.

User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1;

نوع character set استفاده شده به سرویس دهنده اعلام می گردد ( در این مورد خاص از  en:us  و نسخه شماره  10 . 7 . 1  استفاده شده است ) .

en-US; rv: 1.7.10)

نام مرورگر استفاده شده توسط سرویس گیرنده به سرویس دهنده وب اعلام می گردد ( در این مورد خاص از مرورگر FireFox استفاده شده است ) .

Gecko/20050716 Firefox/1.0.6

سرویس گیرنده به سرویس دهنده وب فرمت  اطلاعاتی را که می تواند دریافت نماید ، اعلام می نماید ( در این مورد خاص هم برای متن و هم برای   application  از فرمت xml استفاده می گردد ) . 

Accept: text/xml, application/xml, application/xhtml+xml

سرویس گیرنده  به سرویس دهنده نوع فرمت متن دریافتی را اعلام می نماید ( در این مورد خاص html و یا plain text ) .
همچنین فرمت فایل های گرافیکی ( در این مورد خاص png . و سایر فرمت های متداول ) نیز اعلام می گردد .

 text/html; q=0.9, text/plain; q=0.8, image/png, */*;q=0.5

لیست character set که سرویس گیرنده وب قادر به فهم آنان است،  اعلام می گردد ( در این مورد خاص  ISO-8859 , و یا utf-8  ) .

Accept-Charset: ISO-8859-1, utf-8; q=0.7, *;q=0/7

به  سرویس دهنده وب مدت زمان نگهداری  session  اعلام می گردد ( در این مورد خاص 300 ثانیه ) .
سرویس گیرندگان می توانند با صراحت پایان یک session را اعلام نمایند . در نسخه شماره 1 . 1  پروتکل HTTP ، ارتباط و یا اتصال برقرار شده فعال و یا open باقی خواهد ماند تا زمانی که سرویس گیرنده خاتمه آن را اعلام  و یا مدت زمان حیات آن به اتمام رسیده باشد .
در نسخه شماره یک پروتکل HTTP ، پس از هر درخواست و اتمام تراکنش ، ارتباط ایجاد شده غیرفعال و یا close می گردد .

Keep-Alive: 300 Connection: keep-alive

cookie  و مقدار مربوطه  به آن اعلام می گردد. کوکی یک متن اسکی فلت می باشد که اطلاعات متفاوتی را در خود نگهداری می نماید .
مدت زمان حیات یک کوکی می تواند موقت ( تا زمانی که مرورگر فعال است ) و یا دائم ( ذخیره بر روی هارد دیسک کامپیوتر  و در یک محدوده زمانی تعریف شده ) باشد .

 Cookie: PREF=ID=01a0822454acb293: LD=en:TM=1121638094�..

 User agent نوع مرورگر و سیستم عامل  سرویس گیرنده را مشخص می نماید و این موضوع می تواند  مواد اولیه لازم برای تدارک برخی حملات توسط مهاجمان را تامین نماید