درخواست های HTTP چیست؟

در این مقاله، خواهیم آموخت که درخواست‌های HTTP چیست و چگونه می‌توانید از آن‌ها در سئو، اسکرپینگ وب و ساخت اپلیکیشن‌های وب استفاده کنید.

درک نحوه عملکرد درخواست های HTTP برای ساخت و نگهداری وب سایت ها و برنامه های کاربردی وب ضروری است.

درخواست HTTP چیست؟

درخواست HTTP راهی برای مشتریان وب (مثلاً مرورگرهای وب) برای ارتباط با سرورهای وب از طریق اینترنت است.

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

سپس سرور پاسخی را ارسال می کند که حاوی منبع درخواستی است. اگر منبع در دسترس نباشد، پیام خطا ارسال می کند.

مبانی ارتباطات اینترنتی

هر زمان که محتوای یک وب سایت را با مرورگر خود بارگذاری می کنید، شما (کلاینت) با استفاده از سرور با سرور ارتباط برقرار می کنید TCP و HTTP.

HTTP چیست

HTTP هنگام دسترسی به یک وب سایت برای بارگذاری و تعامل با محتوای آن استفاده می شود.

HTTP مخفف Hypertext Transfer Protocol است و برای ساختار درخواست ها و پاسخ های رد و بدل شده در اینترنت استفاده می شود.

TCP چیست؟

انتقال منابع در اینترنت با استفاده از آن صورت می گیرد پروتکل های کنترل انتقال (TCP).

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

کاری که TCP انجام می دهد این است:

  • داده ها را به گونه ای سازماندهی می کند که می تواند بین سرور و کلاینت منتقل شود
  • یکپارچگی داده های در حال انتقال را تضمین می کند
  • اتصالات اینترنت را مدیریت می کند
  • حجم زیادی از داده ها را به بسته های کوچکتر تقسیم می کند

نحوه انتقال داده ها از طریق اینترنت

هنگامی که یک آدرس (به عنوان مثال https://www.jcchouinard.com) را در مرورگر خود تایپ می کنید، در حال ایجاد یک اتصال پروتکل های کنترل انتقال با سروری هستید که به آن URL پاسخ می دهد.

هنگامی که اتصال برقرار شد، TCP اطمینان حاصل می کند که اتصال تا زمان شروع ارتباط باز باقی می ماند.

سپس، مشتری (مرورگر شما) یک پیام ارسال می کند درخواست HTTP GET به سرور برای بازیابی سندی که سرور باید نمایش دهد. سرور برمی گردد و پاسخ HTTP.

پس از بازگشت پاسخ، سرور اتصال TCP را می بندد.

ساختار درخواست های HTTP

درخواست های HTTP از چندین بخش تشکیل شده است:

  • روش درخواست HTTP: روش مورد استفاده در درخواست (GET، POST، …).
  • URL درخواست: آدرس منبع درخواستی.
  • نسخه HTTP: نسخه پروتکل HTTP (HTTP/1.1، HTTP/2).
  • هدرهای درخواست HTTP: اطلاعات اضافی درباره درخواست (عامل کاربر، پذیرش سرصفحه ها و غیره).
  • متن پیام HTTP: داده های ارسال شده در درخواست

خط اول درخواست HTTP

درخواست HTTP همیشه با خطی شروع می شود که روش مورد استفاده شما، URL درخواست و نسخه پروتکل HTTP را نشان می دهد.

به عنوان مثال، یک درخواست HTTP GET به شکل زیر است:

GET /request-url HTTP/1.1
  • یک روش درخواست (به عنوان مثال GET، POST)
  • یک URL درخواست (/request-url در خط)
  • نسخه پروتکل HTTP (HTTP/1.1)

در درخواست HTTP، سرصفحه های درخواست بعد از خطوط درخواست بیایید و اطلاعات بیشتری در مورد درخواست اضافه کنید.

در اینجا یک هدر درخواست HTTP به نظر می رسد:

Host: example.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 13_3_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36
Accept-Language: en-US
Cache-Control: max-age=0
Accept-Encoding: gzip, deflate
Connection: keep-alive

می‌توانید توضیحی درباره عملکرد هر یک از این پارامترهای هدر HTTP در وب‌سایت موزیلا دریافت کنید.

ساختار یک پاسخ HTTP

هنگامی که شما درخواستی را ارسال می کنید، سرور پاسخ را برمی گرداند.

ساختار پاسخ مشابه ساختار درخواست است.

درخواست واکنش
خط درخواست خط وضعیت
سرصفحه های درخواستی سرصفحه های پاسخ
بدنه ی پیام بدنه ی پیام

خط وضعیت پاسخ

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

اگر منبع با موفقیت بارگیری شود، یک کد وضعیت HTTP 2XX (موفقیت) خواهید دید:

اگر خطایی وجود داشته باشد، هدر پاسخ HTTP کدهای خطا (4XX,5XX) را نشان می دهد:

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

هدرهای پاسخ نمونه ای که توسط سرور برگردانده شده است.

HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Mon, 18 Jul 2016 16:06:00 GMT
Last-Modified: Mon, 18 Jul 2016 02:36:04 GMT
Server: Apache

بدنه ی پیام

را متن پیام HTTP حاوی داده هایی است که شما ارسال یا دریافت می کنید.

در مثال درخواست GET، در اینجا مثالی وجود دارد که بدنه پیام “Hello world!” است.

HTTP/1.1 200 OK
Date: Sun, 10 Oct 2010 23:26:07 GMT
Server: Apache/2.2.8 (Ubuntu) mod_ssl/2.2.8 OpenSSL/0.9.8g
Last-Modified: Sun, 26 Sep 2010 22:04:35 GMT
ETag: "45b6-834-49130cc1182c0"
Accept-Ranges: bytes
Content-Length: 12
Connection: close
Content-Type: text/html

Hello world!

انواع روش های درخواست HTTP

این بخش روش های رایج در HTTP را توضیح می دهد.

در اینجا لیستی از برخی از روش های درخواست HTTP موجود است.

  • دریافت: درخواست داده
  • پست: انتشار داده ها
  • put: جایگزینی داده ها
  • head: مشابه دریافت درخواست اما بدون بدن
  • حذف: حذف داده ها
  • Patch: تغییرات جزئی در داده ها ایجاد کنید
  • اتصال: یک تونل به سرور شناسایی شده توسط منبع هدف ایجاد کنید
  • trace: درخواستی که در پاسخ دریافت شده را برگردانید
  • options:: گزینه های ارتباطی را برای هدف توصیف کنید

روش دریافت

را روش GET روشی است که مرورگر شما برای درخواست اطلاعات از سرور استفاده می کند.

آخرین باری که از مرورگر برای دسترسی به یک صفحه وب استفاده کردید، بدون اینکه متوجه شوید از روش GET استفاده کرده اید!

  • مرورگر درخواستی برای یک منبع خاص ارسال می کند.
  • منبع با یک URI (شناسه منبع یکسان) شناسایی می شود.
  • سرور پاسخی را با اطلاعات درخواستی به همراه کد وضعیت 200 (OK) برمی‌گرداند.

روش های GET در سراسر اینترنت به عنوان راه اصلی برای واکشی اطلاعات استفاده می شود.

روش POST

درخواست‌های دریافتی که در درخواست صفحه وب از سرور استفاده می‌شوند، تنها یکی از روش‌های HTTP ممکن است که مشتری می‌تواند فراخوانی کند. به عنوان مثال، در حالی که درخواست های GET برای بازیابی منابع (مثلاً بارگذاری یک صفحه) از یک وب سرور استفاده می شود، درخواست های POST می توانند برای ایجاد منابع جدید (مثلا ارسال نظر در رسانه های اجتماعی) استفاده شوند.

را روش POST برای ارسال اطلاعات به سرور استفاده می شود. شما می توانید از این روش برای مواردی مانند پر کردن فرم یا اشتراک گذاری محتوا در رسانه های اجتماعی استفاده کنید.

درخواست های POST قابل کش نیستند، به این معنی که اگر از درخواست POST در وب سایت خود استفاده می کنید، خزنده هایی مانند Googlebot نمی توانند آن را کش کنند.

روش قرار دادن

بر اساس RFC، روش PUT درخواست HTTP است که می توانید از آن برای جایگزینی یا ایجاد وضعیت یک منبع هدف با نمایش محصور شده در محتوای پیام درخواست استفاده کنید.

اوه، چی؟

بیایید آن را واضح تر بیان کنیم.

درخواست PUT درخواست HTTP است که برای به‌روزرسانی یا اصلاح چیزی که از قبل در یک وب سرور وجود دارد، مانند یک فایل، استفاده می‌شود.

کدهای وضعیت قرار دهید

با درخواست PUT، کدهای وضعیت زیر را دریافت خواهید کرد که:

  • 201: PUT یک نمایش جدید از منبع هدف ایجاد می کند
  • 200 یا 204: PUT یک نمایش موجود را تغییر می دهد،
  • 409 یا 415: PUT با منبع هدف ناسازگار است

یک نمایش در اینجا اطلاعاتی است که برای انعکاس وضعیت گذشته، فعلی یا مطلوب یک منبع معین در نظر گرفته شده است.

روش سر

را روش HEAD مانند GET عمل می کند، با این تفاوت که سرور بدنه (محتوا) را در پاسخ بر نمی گرداند. این برای به حداقل رساندن حجم داده ای است که تولید و منتقل می شود.

برای دریافت ابرداده بدون انتقال داده های واقعی استفاده می شود.

روش HEAD می تواند برای موارد زیر مفید باشد:

  • تست لینک های فرامتن
  • پیدا کردن تغییرات اخیر

روش HEAD اغلب توسط خزنده های وب برای بهبود کارایی استفاده می شود.

پاسخ HEAD ممکن است تناقضات جزئی با پاسخ GET داشته باشد. هنوز بهتر از تولید محتوایی است که فقط برای درخواست HEAD به آن نیاز ندارید.

شما می توانید با درخواست HEAD کارایی بیشتری به دست آورید زیرا قابل کش است. با ذخیره سازی، درخواست قبلی شما می تواند برای برآوردن درخواست های بعدی HEAD شما مورد استفاده قرار گیرد. یعنی، مگر اینکه فیلد هدر Cache-Control بگوید که شما نمی توانید. پاسخ HEAD ممکن است بر پاسخ‌های GET که قبلاً کش شده‌اند تأثیر بگذارد.

روش حذف

را روش DELETE است درخواست HTTP روشی است که برای درخواست از سرور برای حذف چیزی از سیستمش استفاده می شود.

می توانید از درخواست DELETE برای حذف موارد از اینترنت استفاده کنید و سرور یکی از این کدهای وضعیت را برمی گرداند (منبع: rfc):

  • یک کد وضعیت 202 (پذیرفته شده) در صورتی که عمل احتمالاً موفق خواهد شد اما هنوز اجرا نشده است،
  • یک کد وضعیت 204 (بدون محتوا) در صورتی که اقدام انجام شده باشد و اطلاعات بیشتری ارائه نشود، یا
  • یک کد وضعیت 200 (OK) اگر عمل انجام شده باشد و پیام پاسخ شامل نمایشی برای توصیف وضعیت باشد.

روش پچ

را روش PATCH درخواست HTTP است که می توانید از آن برای ایجاد تغییرات جزئی در یک منبع موجود استفاده کنید. می توانید از این روش برای ایجاد تغییرات کوچک در یک سند به جای جایگزینی کل سند استفاده کنید.

روش اتصال

می توانید استفاده کنید روش CONNECT برای ایجاد یک اتصال شبکه با یک سند. مهندسان از این برای ایجاد تونل های امن (مثلاً VPN) استفاده می کنند.

روش ردیابی

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

روش گزینه ها

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

نتیجه

ما همه چیزهایی را که باید در مورد درخواست های HTTP بدانید آموخته ایم.

ما یاد گرفتیم در مورد:

  • HTTP و TCP
  • ساختار درخواست ها و پاسخ های HTTP
  • انواع روش های HTTP (GET، POST، PUT، DELETE، PATCH، CONNECT، TRACE و OPTIONS)

بیایید نحوه ایجاد درخواست های HTTP در پایتون را بیاموزیم.

سئو PBN | خبر های جدید سئو و هک و سرور