اینترنت پنجره ها اندروید

چه چیزی با درخواست HTTP منتقل می شود. انواع درخواست های HTTP و استراحت فلسفه

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

روش های HTTP درخواست ها و پارامترهای آنها

هر برنامه وب پویا پاسخ به کاربر را مطابق با پارامترهای وارد شده یا اقدامات انجام شده در سمت مشتری، پاسخ می دهد. دسترسی به سرور اغلب به دو نوع پرس و جو کاهش می یابد: استفاده از روش GET یا روش پست. چند کلمه در مورد تفاوت بین این دو نوع درخواست.

روش دریافت:

    پارامترها به هدر پرس و جو HTTP منتقل می شوند، بنابراین آنها را می توان بر روی خط فرمان دیده می شود، و چنین درخواست می تواند در بوک مارک ها ذخیره شود. از آنجا که طول کل هدر محدود است، تعداد و طول پارامترهای منتقل شده با استفاده از GET نیز محدود است.

    اعتقاد بر این است که نتایج چندین اجرا شده در یک ردیف از درخواست های دریافتی باید به تنهایی و یکسان باشد.

روش پست:

    پارامترهای درخواست در بدن پرس و جو HTTP منتقل می شوند، بنابراین هیچ آنها در خط فرمان وجود ندارد. تعداد و اندازه پارامترها نامحدود است.

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

روش GET باید برای استخراج محتویات منبع اطلاعات مطابق با پارامترها استفاده شود، زمانی که شما نیازی به تغییر ساختار داده های منبع هدف ندارید و درخواست (URL) برای ذخیره در بوک مارک ها حساس است. روش دریافت اجرای ممکن است با استفاده از روش پست بالاتر از درخواست های مشابه باشد.

هنگامی که شما نیاز به پنهان کردن از پارامترهای انتقال URL دارید، باید از روش ارسال استفاده شود. این روش همچنین باید در پرس و جو ها برای تغییر محتویات منابع هدف، انتقال در پارامترها (در بدن پرس و جو) توصیف این بیشتر تغییرات استفاده شود.

مسیر به منابع؟ parameter1 \u003d value1 & parameter2 \u003d value2 & ...

اگر شما یک فرم خاص HTML برای پر کردن پارامترها ندارید، می توانید برنامه PHP خود را با گذراندن پارامترهای آزمون به طور مستقیم در خط فرمان مرورگر، به عنوان مثال:

http: //syt/php-samples/sql.php؟ sql \u003d انتخاب * از d_staff

برای تجدید نظر به پارامترهای سمت سرور، از آرایه های جهانی استفاده کنید $ _get. و $ _post. به ترتیب. اگر برنامه شما هنوز از روش تماس با آن استفاده می کند، باید از یک آرایه استفاده کنید $ _REQUEST.که داده های آرایه ها را ترکیبی از $ _GET و $ _POST، به عنوان مثال، به شرح زیر است:

$ sql \u003d isset ($ _ نیاز به ["SQL"])؟ $ _REQUEST ["SQL"]: ""؛

در این مثال، برنامه تعیین می کند که آیا پارامتر "SQL" انتقال داده شد، اگر بله، پس از آن مقدار خود را به متغیر متناظر اختصاص می دهد، و اگر نه، مقدار خالی آن را اختصاص می دهد.

تعیین پارامترهای HTTP پرس و جو از طریق فرم HTML

البته، این بسیار راحت نیست که پارامترهای دستی به صورت دستی به طور مستقیم در خط فرمان مرورگر تعیین شود. این روش مناسب برای اجرای نرم افزار درخواست های HTTP در هنگام برقراری ارتباطات وب با یکدیگر است. به منظور وارد کردن و استفاده از اطلاعات اولیه در سمت مشتری، شما باید از فرم های HTML استفاده کنید و. در زیر نمونه ای از ساده ترین شکل است که پارامتر متن وارد شده است (مقدار)، که بعدا به عنوان پارامتر POST به سرور منتقل می شود.

روش. \u003d "پست" عمل. \u003d 'sql.php'\u003e SQL:

در روش روش عنصر فرم، روش روش انتقال داده ها را به سرور (دریافت یا ارسال) مشخص می کند. ویژگی عمل نشان می دهد فایل پی اچ پیکه درخواست را پردازش می کند. اگر پردازنده باید فایل فعلی باشد، ویژگی عمل مورد نیاز نیست. برای همه مواردی که ارزش آنها باید به عنوان یک پارامتر پرس و جو HTTP منتقل شود، مقدار منحصر به فرد از ویژگی نام را تعیین کنید. این مقدار ویژگی است نام. خواهد بود فهرست مطالب در آرایه ها $ _Get، $ _post یا $ _REQUEST (به عنوان مثال بالا را ببینید). فشار دادن دکمه ارسال لباس را با تمام مقادیر وارد شده به سرور ارسال می کند.

اولین روش برای انجام درخواست PHP پس از استفاده از file_get_contents است. روش دوم از Fread در ترکیب با یک جفت توابع دیگر استفاده می کند. هر دو گزینه از تابع stream_context_create برای پر کردن فیلدهای هدر پرس و جو استفاده می کنند.

توضیح کد

متغیر SPD $ حاوی داده هایی است که باید منتقل شوند. این باید یک فرمت رشته پرس و جو HTTP داشته باشد، بنابراین برخی از کاراکترهای خاص باید رمزگذاری شوند.

و در ویژگی های file_get_contents، و در عملکرد Fread ما دو پارامتر جدید داریم. اولین استفاده از use_include_path است. از آنجایی که ما درخواست HTTP را انجام می دهیم، در هر دو نمونه، آن را نادرست خواهد داشت. هنگام استفاده از مقادیر واقعی برای خواندن یک منبع محلی، تابع فایل را در include_path جستجو می کند.

پارامتر دوم زمینه است، آن را با مقدار بازگشتی stream_context_create پر شده است، که مقدار یک آرایه از $ AHTTP را می گیرد.

با استفاده از file_get_contents برای اجرای درخواست های پست

برای ارسال یک درخواست پست به file_get_contents، شما باید Stream_Context_Create را اعمال کنید تا زمینه های هدر را به صورت دستی پر کنید و مشخص کنید که «Wrapper» مورد استفاده قرار می گیرد - در این مورد http:

$ surl \u003d "http://brugbart.com/examples/http-post.php"؛ // URL ارسال $ spd \u003d "name \u003d jacob & bench \u003d 150"؛ // post data $ AHTTP \u003d Array ("http" \u003d\u003e // wrapper که آرایه استفاده می شود ("روش" \u003d\u003e "ارسال"، // درخواست درخواست // هدر پرسش های پرس و جو "header" \u003d\u003e "محتوا - نوع: برنامه / X-www-form-urlencoded "،" محتوا "\u003d\u003e $ SPD))؛ $ context \u003d stream_context_create ($ AHTTP)؛ $ contents \u003d file_get_contents ($ surl، false، $ context)؛ محتویات echo $؛

با استفاده از Fread برای اجرای درخواست های پست

شما می توانید از تابع Fread برای انجام درخواست های پست استفاده کنید. مثال زیر stream_context_create استفاده می شود برای کامپایل هدایای مورد نیاز HTTP:

$ surl \u003d "http://brugbart.com/examples/http-post.php"؛ // URL ارسال $ spd \u003d "name \u003d jacob & bench \u003d 150"؛ // $ AHTTP \u003d ARRAY ("http" \u003d\u003e // wrapper که آرایه استفاده می شود ("روش" \u003d\u003e "post"، // درخواست درخواست // "header" \u003d\u003e "نوع محتوا: نرم افزار / x-www-form-urlencoded "،" محتوا "\u003d\u003e $ SPD))؛ $ context \u003d stream_context_create ($ AHTTP)؛ $ handle \u003d fopen ($ surl، "r"، false، $ context)؛ محتوا \u003d ""؛ در حالی که (! Feof ($ دستگیره)) (محتویات $ \u003d fread ($ دسته، 8192)؛) fclose ($ دسته)؛ محتویات echo $؛

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

در حال حاضر ما به استفاده از Fread و file_Get_Contents برای دانلود محتوا از اینترنت از طریق HTTP و HTTPS توجه خواهیم کرد. برای استفاده از روش های شرح داده شده در این مقاله، باید گزینه Fopen Wrappers را فعال کنید. برای انجام این کار، در فایل php.ini شما باید پارامتر allow_url_fopen را نصب کنید.

POP و دریافت پرس و جو PHP برای ورود به سیستم در سایت ها، دریافت محتویات یک صفحه وب و یا بررسی نسخه های جدید از برنامه های کاربردی استفاده می شود. ما به شما خواهیم گفت که چگونه درخواست های HTTP ساده انجام دهید.

با استفاده از Fread برای دانلود یا دریافت فایل ها از طریق اینترنت

به یاد داشته باشید که خواندن صفحه وب محدود به بخش موجود بسته است. بنابراین شما باید از تابع stream_get_contents استفاده کنید ( مشابه file_get_contents) یا در حالی که چرخه برای خواندن محتویات قطعات کوچکتر تا پایان فایل رسیده است:

در این مورد، پردازش PHP Query PHP آخرین استدلال تابع FreeD برابر با اندازه قطعه است. این، به عنوان یک قاعده، نباید بیشتر از 8192 باشد ( 8*1024 ).

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

برای جلوگیری از این به اندازه کافی، این دقیق تر از درک قرار ملاقات ها و تفاوت های این روش ها است.

اگر به ارزش اسامی روش ها بروید، در حال حاضر بسیار واضح تر خواهد شد. دریافت (از زبان انگلیسی برای دریافت)، به عنوان مثال این باید به درخواست داده اعمال شود. پست (C انگلیسی ارسال ایمیل) - درخواست ارسال داده ها به سرور. به نظر می رسد همه چیز بسیار ساده و قابل فهم است. اما کسانی که مایل به توسعه سایت ها هستند، فقط توسط سایت کارت کسب و کار با یک فرم بازخورد پیچیده تر می شوند، بهتر است بدانیم که سوال نزدیک تر می شود.

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

مشخصات HTTP 1.1 وارد دو مفهوم می شود: یک درخواست امن و ناامن، یا اگر دقیق تر باشد، روش.

ایمن - اینها روش هایی هستند که فقط می توانند اطلاعات را درخواست کنند. آنها نمی توانند منابع درخواست شده را تغییر دهند، نمی توانند منجر به نتایج نامطلوب برای کاربر، سایر افراد یا سرور شوند. نمونه هایی که ایمن هستند، یک درخواست HTML از صفحه وب یا تصویر وجود دارد. ایمن شامل سر و روشها می شود.

یادداشت

در واقع، صنعتگران البته می توانند به اشتراک بگذارند و پرس و جو شوند. به عنوان مثال، درخواست های تمرکز.

درخواست های ناامن، همانطور که قبلا حدس زده شده است، می تواند به طور بالقوه منجر به عواقب بد شود، اگر آنها دوباره استفاده می کنند. چنین درخواست هایی می توانند محتویات منابع را تغییر دهند تا آنها تجدید نظر کنند. نمونه هایی از چنین درخواست هایی: ارسال پیام ها، ثبت نام، پرداخت آنلاین. ناامن شامل پست، قرار دادن، روش های حذف است.

روش های IdemPotent (IdemPotent)

idmpotency - یک ویژگی از روش هایی است که با بازپرداخت های متعدد، نتیجه مشابهی را به خود جلب می کند، مگر زمانی که اطلاعات منسوخ شده است. این به این معنی است که هنگام دسترسی به همان URL، همه کاربران یکی و محکم ترین صفحه وب، تصویر، ویدئو و غیره را می بینند. این ویژگی روشها را حذف می کند، قرار داده است.

و در حال حاضر بیشتر در مورد روش های دریافت و پست: هر گونه خلاصه "خلاصه".

گرفتن.

  • طراحی شده برای دریافت داده ها از سرور؛
  • بدن درخواست خالی است
  • به دلیل اجسام خالی درخواست، در سمت سرور سریعتر و مصرف کوچکتر منابع سرور را پردازش می کند.
  • انتقال متغیرها در نوار آدرس رخ می دهد (این نیز کاربر را نیز می بیند، داده های فنی در خط پرس و جو قرار می گیرند) و بنابراین اطلاعات مربوط به متغیرها و مقادیر آنها (داده ها محافظت نشده اند)؛
  • این قادر به انتقال مقدار کمی از داده ها به سرور است: محدودیت های طول URL وجود دارد که به مرورگر بستگی دارد، به عنوان مثال، IE6 \u003d 2KB. این توصیه می شود برای حرکت به توسعه دهندگان یاهو!
  • فقط می تواند کاراکترهای ASCII را انتقال دهد؛
  • چنین درخواست را می توان کپی کرد، ذخیره (به عنوان مثال، در بوک مارک ها)؛
  • درخواست ممکن است ذخیره شود (این می تواند کنترل شود)؛
  • برای کاهش بیشتر بار در کانال و سرور و درخواست های جزئی در دسترس هستند؛
  • اتصال HTTP را شکست نمی دهد (زمانی که نگهدارنده در سرور فعال می شود).

پست.

  • طراحی شده برای ارسال داده به سرور؛
  • انتقال داده ها در بدن پرس و جو رخ می دهد؛
  • پردازش در کنار سرور، کندتر و "سخت تر" از دریافت است، زیرا علاوه بر هدایا، شما باید بدن پرس و جو را تجزیه و تحلیل کنید؛
  • قادر به انتقال مقدار زیادی از داده ها؛
  • قادر به انتقال فایل ها؛
  • صفحه پست تولید شده را نمی توان به بوک مارک ها ذخیره کرد.
  • اتصال HTTP را از بین می برد
  • برای انتقال حتی مقدار بسیار کمی از اطلاعات، اکثر مرورگرها حداقل دو بسته TCP را ارسال می کنند: به عنوان عنوان، و سپس بدن درخواست.

این دو روش را خیلی شبیه نیست. استفاده از یک یا چند باید به دلیل وظیفه باشد، اما نه این واقعیت است که دریافت به طور پیش فرض استفاده می شود یا کار راحت تر است. البته، در اغلب موارد، گزینه ای بیشتر Winble، به ویژه در هنگام ساخت آژاکس سریع، اما در مورد کاستی های آن را فراموش نکنید. برای خودم، من یک الگوریتم ساده را بر روی انتخاب روش ساخته شده است.

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

به آدرس زیر بروید (این برای یک توضیح بصری است): http://calendarin.net/calendar.php؟year\u003d2016 لطفا توجه داشته باشید نوار آدرس مرورگر: calendarin.net/calendar.php ؟ سال \u003d 2016 فایل اصلی به نام یک علامت سوال (؟) و پارامتر "سال" با ارزش "2016" نامیده می شود. بنابراین، همه چیز که به دنبال یک علامت سوال است، این یک درخواست دریافتی است. همه چیز ساده است برای انتقال یک پارامتر نه، اما چند، پس از آن آنها باید آمپرس را تقسیم کنند (&). به عنوان مثال: calenderinin.net/calendar.php. ؟ سال \u003d 2016 و نمایش \u003d کار روز و روز

فایل اصلی نیز نامیده می شود، به دنبال یک علامت سوال (؟)، پس از آن "سال" پارامتر با مقدار "2016"، سپس ampersand (و)، پس از آن - پارامتر "صفحه نمایش" با "روز کاری - و روزها "پارامتر -Off.

پارامترهای دریافت می توانند به طور مستقیم در نوار آدرس مرورگر تغییر کنند. به عنوان مثال، تغییر ارزش "2016" به "2017" و فشار دادن کلید، شما به تقویم برای سال 2017 بروید.

این انتقال داده ها به صورت پنهانی (آدرس صفحه تغییر نمی کند)؛ یعنی، برای دیدن آنچه که منتقل شد، فقط می توانید با استفاده از برنامه (اسکریپت). به عنوان مثال، در ابزار زیر برای محاسبه کاراکترها در متن، داده های اولیه توسط روش پست ارسال می شود: http://usefullinineetools.com/free/character-counter.php

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

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

اگر، به منظور اشاره به روش دریافت، به اندازه کافی برای ما درخواست URL را تایپ کنید، سپس همه چیز در روش پست بر روی یک اصل دیگر کار می کند.

به منظور اجرای این نوع درخواست، ما باید با کلیک بر روی دکمه با نوع \u003d "Submit Attribute"، که در صفحه وب واقع شده است، کلیک کنید. لطفا توجه داشته باشید که این دکمه در عنصر قرار دارد.

با روش روش با مقدار پست.

این کد HTML را در نظر بگیرید:

متن را وارد کنید:


اگر کاربر وارد برخی از متن به فیلد متن و کلیک بر روی دکمه "Submit"، سپس متغیر متن به سرور با محتوای محتوا که کاربر وارد شده است ارسال می شود.

ارسال و دریافت درخواست با کلمات ساده

این متغیر توسط روش پست ارسال می شود.

اگر شما در فرم بنویسید:

این داده ها توسط روش GET ارسال می شود.

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

یکی دیگر از تفاوت های روش پس از دریافت، روش پست، تمام متغیرهای منتقل شده به آنها و مقادیر آنها را در بدن خود (نهاد بدن) پنهان می کند. در مورد روش دریافت، آنها در رشته پرس و جو (درخواست-URI) ذخیره شدند.

در اینجا یک نمونه از یک درخواست ساخته شده توسط روش پست است:

ارسال / http / 1.0 \\ r \\ n
میزبان: www.site.ru \\ r \\ n
مرجع: http://www.site.ru/index.html\\r\\N.
کوکی: درآمد \u003d 1 \\ r \\ n
محتوای نوع: برنامه / X-www-form-urlencoded \\ r \\ n
طول محتوا: 35 \\ r \\ n
\\ r \\ n
ورود \u003d Dima & Password \u003d 12345

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

علاوه بر این، روش پست را می توان نه تنها متن، بلکه همچنین داده های چند رسانه ای (تصاویر، صوتی، ویدئو) منتقل می شود. یک پارامتر خاص نوع خاصی وجود دارد که نوع اطلاعاتی را که باید انتقال می یابد، تعریف می کند.

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

در اینجا نمونه ای از پردازش در PHP است:

echo $ _post ['text']؛
?>

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

بگذارید این ساختار را با جزئیات بیشتر در نظر بگیریم، که درخواست ها و پاسخ ها را در پروتکل HTTP ایجاد می کند.

درخواست HTTP شامل سه بخش اصلی است که در آن به ترتیب در زیر آمده است. یک خط خالی بین هدر ها و بدن پیام (به عنوان یک جداساز) وجود دارد، این یک نماد ترجمه رشته است.

رشته خالی (جداساز)

ارسال و دریافت درخواست، تفاوت بین آنها چیست و بهتر است و برای چه اهدافی چیست؟

پیام بدن (بدن نهاد) - پارامتر اختیاری

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

سرفصل - توصیف بدن پیام، انتقال پارامترهای مختلف و سایر اطلاعات و اطلاعات.

بدنه ی پیام - این داده هایی است که در درخواست منتقل می شود. بدن پیام یک پارامتر اختیاری است و ممکن است از دست ندهد.

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

در جزئیات بیشتر، هر عنصر پرس و جو، ما به یادداشت های زیر نگاه خواهیم کرد.

به عنوان مثال، یک درخواست واقعی به سرور را در نظر بگیرید. من هر بخش از پرس و جو را با رنگ من برجسته کردم: یک خط پرس و جو - سبز، سرفصل - نارنجی، پیام بدن آبی است.

درخواست از مرورگر:

میزبان: webgyry.info.

کوکی: تنظیمات WP

اتصال: زنده نگه داشتن

مثال زیر در حال حاضر یک پیام پیام دارد.

پاسخ سرور:

محتوای نوع: متن / HTML؛ charset \u003d utf-8

انتقال-کدگذاری: تکه تکه شده

اتصال: زنده نگه داشتن

نگه داشتن زنده: timeout \u003d 5

X-Pingback: //webgyry.info/xmlrpc.php

سند بدون عنوان

در اینجا پیام های مشتری و سرور HTTP وجود دارد.

به هر حال، آیا می خواهید بدانید که آیا در برخی از آیتم ها در سایت خود با استفاده از "اهداف" معیارهای Yandex و Google Analytics حساس است؟

آنچه را که کار نمی کند حذف کنید، آنچه را که کار می کند و دو برابر درآمد خود را اضافه کنید.

البته در تعیین اهداف Metrics Yandex ..

Google Analytics اهداف راه اندازی دوره ..

سرویس گیرنده HTTP یک درخواست به سرور را به صورت درخواست درخواست، که دارای فرمت زیر است ارسال می کند:

  • ردیف پرس و جو (عنصر اجباری)
  • عنوان (عنصر اختیاری)
  • رشته خالی (عنصر اجباری)
  • پیام بدن (عنصر اختیاری)

هر یک از این عناصر را به صورت جداگانه در نظر بگیرید.

درخواست ردیف

رشته پرس و جو با یک نشانه روش آغاز می شود، پس از آن پرس و جو URI و نسخه پروتکل پیروی می کنند. عناصر از هر فضایی دیگر پراکنده می شوند:

این مورد را در جزئیات بیشتر در نظر بگیرید

روش درخواست

این عنصر یک روش را نشان می دهد که باید از طرف سرور به inferction URI مشخص شده نامیده شود.

هشت روش در http وجود دارد:

  • سر.
    برای گرفتن رشته وضعیت و هدر از سرور URI استفاده می شود. داده ها را تغییر نمی دهد.
  • گرفتن.
    برای دریافت اطلاعات از سرور به URI مشخص شده استفاده می شود. داده ها را تغییر نمی دهد.
  • پست.
    برای ارسال داده ها به سرور (به عنوان مثال، اطلاعات در مورد توسعه دهنده، و غیره) با استفاده از فرم های HTML استفاده می شود.
  • قرار دادن.
    جایگزین تمام اطلاعات قبلی در منابع جدید داده های دانلود شده است.
  • حذف.
    تمام اطلاعات فعلی را بر روی یک منبع تعریف شده توسط URI حذف می کند.
  • اتصال
    با توجه به URI مشخص شده، اتصال تونل را به سرور تنظیم می کند.
  • گزینه ها.
    خواص اتصال برای منبع مشخص شده را توصیف می کند.
  • پی گیری
    پیام حاوی ردیابی بازگشت منبع مشخص شده در URI را فراهم می کند.

درخواست URI

URI (شناسه منبع منبع) یک شناسه منبع است که پرس و جو ارسال می شود. در زیر شایع ترین فرمت URI است:

‘*’ هنگامی که یک درخواست HTTP به یک منبع خاص اعمال نمی شود، اما به سرور استفاده می شود. استفاده می شود فقط در مورد زمانی که روش لازم نیست برای اعمال به منابع. مثلا،

absoluteuri. هنگامی که یک درخواست HTTP بر روی یک پروکسی انجام می شود استفاده می شود. پروکسی درخواست می شود یک پرس و جو را از یک حافظه مقرون به صرفه ارسال کنید و پاسخ را بازگردانید. مثلا:

asbutivated_put | منبعبیشتر Chatso استفاده می شود.

یادگیری کار با درخواست های دریافتی و ارسال

یک منبع خاص از یک سرور خاص درخواست شده است. به عنوان مثال، مشتری می خواهد یک منبع از سرور را از طریق بندر 80 دریافت کند. آدرس منبع "www.proselyte.net" و درخواست زیر را ارسال می کند:

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

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

در زیر تقاطع مهمترین مزرعه هدر است که می تواند مورد استفاده قرار گیرد:

  • پذیرش Charset
  • رمزگذاری پذیرش
  • پذیرش زبان
  • مجوز
  • انتظار
  • درگیری
  • اگر اصلاح شده است،
  • اگر بدون هیچ بازی
  • اگر محدوده
  • اگر-اصلاح شده - از آنجا که
  • دامنه.
  • مرجع
  • عامل کاربر

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

یک مثال از درخواست HTTP

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

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

ساده ترین راه برای ایجاد یک پرس و جو دریافت می تواند برای تایپ URL در نوار آدرس مرورگر استفاده شود.

مرورگر سرور را برای تقریبا اطلاعات زیر ارسال می کند:

دریافت / http / 1.1
میزبان: webgyry.info.
کاربر عامل: Mozilla / 5.0 (ویندوز NT 6.1؛ RV: 18.0) Gecko / 20100101 فایرفاکس / 18.0
پذیرش: متن / HTML، برنامه / XHTML + XML، برنامه / XML؛ Q \u003d 0.9، * / *؛ Q \u003d 0.8
پذیرش زبان: ru-en، ru؛ q \u003d 0.8، en-us؛ q \u003d 0.5، en؛ q \u003d 0.3
پذیرش رمزگذاری: Gzip، deflate
کوکی: تنظیمات WP
اتصال: زنده نگه داشتن

درخواست شامل دو بخش است:

1. خط درخواست (خط درخواست)

2. هدرها (پیام های پیام)

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

تفاوت بین روش های دریافت و پست

این را می توان با کمک پارامترهای ویژه دریافت کرد.

برای اضافه کردن پارامترهای دریافت به درخواست، شما باید علامت "؟" را در انتهای آدرس URL قرار دهید و پس از آن شروع به تنظیم آنها در قانون زیر:

parameter_Name1 \u003d پارامترهای ارزش 1 و پارامتر نام 2 \u003d پارامترهای ارزش 2 و ...

جداساز بین پارامترها علامت "&" است.

به عنوان مثال، اگر ما می خواهیم دو ارزش را تصویب کنیم، نام کاربری و سن آن، می توان آن را انجام داد:

http://site.ru/page.php؟name\u003ddima&age\u003d27

هنگامی که این پرس و جو اجرا می شود، داده ها به متغیر به اصطلاح query_string متغیر می رسند که از آن می توان آنها را با استفاده از سرور برنامه نویسی وب به دست آورد.

در اینجا یک مثال است که می تواند بر روی پی اچ پی انجام شود.

echo "نام شما:". $ _GET ["نام"]. "
»;
اکو "سن شما:". $ _GET ["سن"]. "
»;
?>

طراحی $ _Get ["پارامتر نام"] به شما امکان می دهد مقدار پارامتر انتقال را نمایش دهید.

به عنوان یک نتیجه از اجرای این کد در مرورگر نمایش داده خواهد شد:

نام شما: دیما
سن شما: 27

ما همچنین یک درخواست را به سرور دریافت می کنیم.

HTTP - پروتکل حمل و نقل HyperText، یکی از پروتکل های پشته TCP / IP. در ابتدا پروتکل برای انتقال و دریافت صفحات HTML ایجاد شد، اما اکنون کاملا برای سیستم های اطلاعات توزیع شده استفاده می شود. این یکی از پروتکل های مورد استفاده ترین در وب جهانی است.

تصویر 1

بر اساس طرح پرس و جو / پاسخ. هنگامی که مشتری یک درخواست را به سرور ارسال می کند، می تواند آن را با استفاده از 3 نوع درخواست انجام دهد: دریافت، قرار دادن و پست.

درخواست پروتکل HTTP را دریافت کنید

گرفتن. - این اطلاعات درخواست مشتری است. مرورگر وب سرویس گیرنده پیام دریافتی را برای گرفتن صفحات از آن ارسال می کند. پرس و جو دو بخش دارد:

  • درخواست ردیف
  • سرفصل

دریافت یک پرس و جو یک بدن داده ای ندارد، اما این بدان معنا نیست که نمی تواند هر گونه اطلاعات را به سرور انتقال دهد. با کمک پارامترهای ویژه در URL، سرور داده را می توان به سرور منتقل کرد. امضاء کردن ? پس از دامنه در URL، به این معنی است که پارامترها ادامه خواهند یافت. در شکل 2 می توان دید که چه نوع اطلاعات سرور مرورگر را انتقال می دهد.

شکل 2.

ارسال و قرار دادن درخواست پروتکل HTTP

این دو روش برای ارسال اطلاعات به سرور وب اجرا می شود. به عنوان مثال، با کمک فرم های ویژه وب، آنها را پر کنید، ما آنها را به سرور با استفاده از روش پست ارسال می کنیم. همچنین منابع یا داده ها را در وب سرور (تصویر، ویدئو) دانلود کنید.

HTTP یک پروتکل امن نیست و پیام های ارسال می تواند متوقف شود و آن را بخواند، زیرا رمزگذاری نشده است. برای امنیت داده ها با استفاده از روش پست، پروتکل HTTPS استفاده می شود. این اطلاعات را رمزگذاری می کند و می تواند تأیید اعتبار کند. این همچنین الزامات اضافی برای اطلاعات بین حمل و نقل و سطوح کاربردی را اجرا می کند.

تفاوت های اصلی بین روشهای پست و دریافت در جدول 1 نشان داده شده است.

شکل 3 قوانین اساسی را که نیاز به دنبال کردن روش دریافت یا ارسال برای اجرای کار بر روی سرور شما را نشان می دهد، نشان می دهد.