شما اینجایید
خانه > برنامه نویسی > پروتکل HTTP چیست؟

پروتکل HTTP چیست؟

پروتکل HTTP

دنیای شبکه های کامپیوتری دارای عمری چند ساله است و بسیاری از کاربران ، ضرورت استفاده از شبکه را همزمان با متداول شدن اینترنت در اوایل سال ۱۹۹۰ دریافتند. عمومیت اینترنت، رشد و گسترش شبکه های کامپیوتر‌ی را به دنبال داشته است. اینترنت نیز با سرعتی باورنکردنی رشد و امروزه شاهد ایجاد ده ها میلیون وب سایت در طی یک سال در این عرصه می باشیم.

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

از پروتکل HTTP یا Hyper Text Transfer Protocol برای ایجاد ارتباط، دریافت، و ارسال داده ها بین سرور و کلاینت استفاده می شود. این پروتکل از پروتکل TCP/IP برای بستن پلی میان سرور و کلاینت استفاده می کند. طریقه کار ارتباط کلاینت با سرور، با استفاده از پروتکل HTTP به این ترتیب است که داده ها، از طریق بسته های اطلاعاتی، بین سرور و کلاینت رد و بدل می شود. به این ترتیب که برای برای ارسال داده ای به سمت مقصد، در ابتدا، داده، به بخش های کوچکتری شکسته می شود و سپس از هر کدام به سمت مقصد و با ترتیب مشخص ارسال می شوند.

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

این پروتکل از Handshaking برای ارسال و دریافت داده ها استفاده می کند. در Handshaking برای شروع و پایان عملیات دریافت و ارسال بسته های اطلاعاتی بین سرور و کلاینت، سوالاتی از مقصد پرسیده می شود.

بعنوان مثال فرض کنید کلاینت A می خواهد از سرور B داده هایی را دریافت نماید. برای این منظور A در ابتدا درخواستی را به B می فرستد تا آمادگی B را برای ارسال پرسوجو نماید. در اینحالت A صبر خواهد کرد تا B جوابی را به این پرسش ارسال نماید. پس از آنکه B آمادگی را خود اعلام کرد، A پیامی را سمت B می فرستد و از او می خواهد تا داده های اطلاعاتی را بفرستد. B پیام را دریافت می کند و اطلاعات را آماده می کند و آن را به بسته های کوچکتری تقسیم می کند و توسط پروتکل Handshaking آنها را پشت سر هم و به ترتیب ارسال می کند.

به منظور انجام یک تراکنش موفقیت آمیز بین سرویس گیرندگان وب (نظیر مرورگرهایی نظیر Chrome, IE و …)  و سرویس دهندگان وب (نظیر IIS) ، به اطلاعات زیادی نیاز خواهد بود . پس از handshake پروتکل TCP/IP، مرورگر اطلاعات گسترده ای را ‌ برای سرویس دهنده وب ارسال می نماید.

لازم به ذکر است که پروتکل TCP/IP که در پروتکل HTTP مورد استفاده قرار می گیرد، امنیت داده ها و تضمین ارسال آنها را تماما بر عهده گرفته است. این پروتکل بر روی لایه هایی قرار دارد و معماری این پروتکل بصورت چند لایه است.

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

عملکرد

نوع اطلاعات

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

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  و نسخه شماره  ۱۰ . ۷ . ۱  استفاده شده است ) .

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  اعلام می گردد ( در این مورد خاص ۳۰۰ ثانیه ) .
سرویس گیرندگان می توانند با صراحت پایان یک session را اعلام نمایند . در نسخه شماره ۱ . ۱  پروتکل HTTP ، ارتباط و یا اتصال برقرار شده فعال و یا open باقی خواهد ماند تا زمانی که سرویس گیرنده خاتمه آن را اعلام  و یا مدت زمان حیات آن به اتمام رسیده باشد .
در نسخه شماره یک پروتکل HTTP ، پس از هر درخواست و اتمام تراکنش ، ارتباط ایجاد شده غیرفعال و یا close می گردد .

Keep-Alive:
 ۳۰۰ Connection: keep-alive

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

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

 

 

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

 

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

پاسخ دهید

نوزده − 11 =

Top