فرمت فایل:WORD(قابل ویرایش) تعداد 7 صفحه
در بخش اول و دوم با جایگاه پروتکل HTTP به منظور مبادله اطلاعات بین سرویس گیرندگان و سرویس دهندگان وب آشنا شدیم . همچنین به این موضوع اشاره گردید که پروتکل فوق ، همانند اغلب پروتکل های لایه application ، از معماری سرویس گیرنده - سرویس دهنده استفاده می نماید .
در این بخش به بررسی برخی پتانسل های ارائه شده توسط پروتکل HTTP خواهیم پرداخت .
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 در مرورگر ، می بایست به ارتباط ایجاد شده توسط سرویس گیرنده خاتمه داده شود .
جستجو
مقالات
دایره المعارف
دوره های آموزشی
مقالات
تمام گروهها امنیت اطلاعات بانک های اطلاعاتی پروتکل های شبکه تکنولوژی ADO.NET تکنولوژی ASP.NET خانواده XML زبان VB.NET سخت افزار سرویس های شبکه سرویس های وب سیستم های عامل طراحی برنامه فرم های وب فناوری Ajax متفرقه مفاهیم دات نت مفاهیم شبکه ویروس ها و کرم ها
آشنائی با پروتکل 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 نوع مرورگر و سیستم عامل سرویس گیرنده را مشخص می نماید و این موضوع می تواند مواد اولیه لازم برای تدارک برخی حملات توسط مهاجمان را تامین نماید .
پروتکل های http,ftp
نویسنده مدیر سایت
۰۷ آبان ۱۳۸۶
پروتکل HTTP و FTP
در مورد پروتکل TCP/IP توضیح دادیم و گفتیم که پروتکل IP و TCP زیر مجموعه از این پروتکل است.پروتکل TCP/IP شامل پروتکل های زیاد سخت افزاری و نرم افزاری است که در نمودار زیر آن ها را مشاهده میکنید.
این شکل بطور اختصار پروتکل TCP/IP را نمایش میدهد که ۲ مورد از آن را توضیح دادیم.(توضیح سایر موارد در ارتباط با موضوع این سایت چندان کاربرد ندارد). این شکل را اینجا گذاشتم تا جایگاه پروتکل های توضیح داده شده را در TCP/IP درک کنید و همچنین با سایر پروتکل هایی که از هم اکنون با آن ها سر و کار داریم آشنا شوید نظیر HTTP و... همانطور که می بینید لایه ای از پروتکل ها را داریم که به آن لایه نرم افزارهای کاربردی می گویند و در آن، پروتکل هایی تعریف شدند که برای ارسال و دریافت اطلاعات (FTP) ، ارسال پست الکترونیکی (SMTP) و ... مناسب هستند. به این موارد هم پروتکل می گوییم یعنی یکسری از قراردادها و استانداردها برای تبادل اطلاعات (به شیوه های مختلف مانند ایمیل،فایل و...) که در سطح نرم افزاری تعریف کرده ایم.پروتکل HTTP برای ارسال صفحات وب، تصاویر و... تعریف شده است که میتوان اینگونه اطلاعات را توسط یک مرورگر از اینترنت دریافت کرد و مشاهده کرد.پروتکل FTP صرفا برای انتقال فایل هست و هیچگونه نمایش اطلاعاتی در کار نیست.مثلا فرض کنید یک سایت طراحی و آماده کرده اید شامل مثلا ۲۰ یا ۳۰ صفحه وب و عکس و... که برای ارسال آن روی سرور سایتتان میتوانید براحتی از این پروتکل استفاده کرده و با سرعت خیلی بالایی اطلاعات را یکجا انتقال دهید(در مباحث بعدی در مورد چگونگی استفاده از موارد فوق صحبت خواهم کرد).
تحقیق در مورد آشنائی با پروتکل HTTP