استفاده از متدهای GET و POST در PHP را به سختی می توان بیش از حد تخمین زد، زیرا این روش ها تقریباً در هر سایتی یافت می شوند. قبل از مطالعه مطالبی که در زیر توضیح داده شده است، به شما توصیه می کنم که با برچسب html آشنا شوید
تفاوت در ارائه فرم
روش درخواست POST از وب سرور می خواهد که داده های محصور شده در متن پیام درخواست را بپذیرد و ذخیره کند. اغلب هنگام آپلود یک فایل یا ارسال یک فرم وب تکمیل شده استفاده می شود.
روش درخواست HTTP GET اطلاعات را از سرور بازیابی می کند. به عنوان بخشی از یک درخواست GET، ممکن است برخی از داده ها در رشته جستجوی URL ارسال شود و عبارات جستجو، محدوده تاریخ، یا سایر اطلاعاتی که درخواست را تعریف می کند، مشخص شود.
به عنوان بخشی از درخواست POST، مقدار دلخواه داده از هر نوع می تواند به سرور در متن پیام درخواست ارسال شود. فیلد سرصفحه در درخواست POST معمولاً نوع رسانه اینترنتی متن پیام را مشخص می کند.
تفاوت اصلی بین درخواست های GET و POST این است که مطابق با درخواست های HTTP مختلف همانطور که در مشخصات HTTP تعریف شده است. فرآیند ارسال برای هر دو روش به یک شکل شروع می شود: مجموعه داده فرم توسط مرورگر ایجاد می شود و سپس به روشی که توسط ویژگی enctype مشخص شده است کدگذاری می شود. برای METHOD="POST مشخصه enctype می تواند multipart/form-data یا application/x-www-form-urlencoded باشد، در حالی که برای METHOD="GET" فقط از طریق application/x-www-form-urlencoded فعال می شود. داده های فرم و سپس به سرور ارسال می شود.
برای ارسال فرم با METHOD = "GET"، مرورگر با گرفتن مقدار مشخصه action و اضافه کردن مجموعه ای از داده های فرم کدگذاری شده با استفاده از نوع محتوای application/x-www-form-urlencoded، یک URL می سازد. سپس مرورگر با این URL به گونه ای برخورد می کند که گویی به یک پیوند اشاره می کند (یا انگار کاربر به صورت دستی URL را تایپ کرده است). مرورگر URL را به بخشهایی تقسیم میکند و میزبان را میشناسد، سپس یک درخواست GET را با بقیه URL به عنوان آرگومان برای آن میزبان ارسال میکند. توجه به این نکته ضروری است که این فرآیند به این معنی است که داده های فرم به کدهای اسکی محدود می شود. هنگام ارسال آن ها به URL ASCII باید دقت ویژه ای برای رمزگذاری و رمزگشایی انواع دیگر کاراکترها انجام شود.
ارسال فرم با METHOD="POST" باعث می شود که یک درخواست POST با استفاده از مقدار ویژگی action و یک پست تولید شده با توجه به نوع محتوای مشخص شده توسط ویژگی enctype ارسال شود.
PHP
PHP در HTML تعبیه شده است. این بدان معناست که کد PHP را می توان در یک صفحه HTML درج کرد. کد PHP توسط سروری که صفحه را میزبانی می کند خوانده یا تجزیه می شود. خروجی توابع GET و POST PHP در یک صفحه معمولاً به صورت کد HTML قابل خواندن توسط مرورگر برگردانده می شود. از آنجا که کد PHP قبل از بارگذاری صفحه به HTML تبدیل می شود، کاربران نمی توانند کد PHP را در صفحه مشاهده کنند. این باعث می شود صفحات PHP برای دسترسی به پایگاه های داده و سایر اطلاعات محافظت شده کافی باشند.
بیشتر سینتکس PHP از زبان های دیگر مانند C، Java و Perl وام گرفته شده است. با این حال، PHP دارای تعدادی ویژگی منحصر به فرد و ویژگی های خاص است. هدف از این زبان این است که توسعه دهندگان وب را قادر می سازد تا به سرعت و به راحتی صفحات تولید شده به صورت پویا را بنویسند.
وردپرس
وردپرس یک سیستم مدیریت محتوای رایگان است که برای ایجاد و نگهداری وب سایت ها استفاده می شود. سهولت استفاده و ویژگی های منحصر به فرد وبلاگ نویسی به آن کمک کرده است تا به محبوب ترین ابزار وبلاگ نویسی در وب تبدیل شود.
رابط وردپرس به هر کسی که تجربه توسعه وب را ندارد اجازه می دهد تا یک وب سایت ایجاد و منتشر کند. ابزارهای وبلاگ نویسی داخلی راهی آسان برای ردیابی پست ها، بازدیدکنندگان و نظرات کاربران را فراهم می کند.
اگرچه هزاران قالب و افزونه وردپرس در دسترس است، سیستم POST GET در وردپرس همچنان محدودیتهای خود را دارد. از آنجایی که این یک سرویس مبتنی بر قالب است، کاربر باید به جای ایجاد صفحات از ابتدا با یک وب سایت از پیش ساخته شده شروع کند. همچنین، هیچ راهی برای جاسازی اسکریپت ها یا نگهداری پایگاه داده با همان سطح کنترلی که یک وب سایت سفارشی ارائه می دهد وجود ندارد.
ابزار POST_GET_ID() به اسکریپت اجازه می دهد تا عنصر را به دلیل داشتن شناسه منحصر به فرد دستکاری کند و هنگامی که به عنوان فرم از طریق این روش ها ارسال می شود، فهرست کشویی با یک شناسه منحصر به فرد ارسال می شود که به اسکریپت اجازه می دهد متوجه شود که کدام پست در حال اجرا است. از طرف دیگر، میتوان یک متغیر پنهان ارسال کرد که به اسکریپت اجازه میدهد ببیند کدام پست متعلق به view است.
بله، هرکسی در مقطعی چیزی یاد گرفته است. تنها چیزی که افراد را در این زمینه متمایز می کند این است که برای برخی آموزش ها به راحتی داده می شود، در حالی که برخی دیگر ماه ها نمی توانند اصل موضوع را درک کنند. امروز در مورد درخواست های POST و GET در HTML\PHP صحبت خواهیم کرد.
خود درخواستهای POST و GET (که از این پس به آنها درخواست گفته میشود) مدتهاست که در تمام منابع اینترنتی ریشه دارند. اگر ناگهان روزی جایگزینی برای این فناوری ها ظاهر شود، احتمالاً به این زودی نخواهد بود و احتمالاً ضروری نیست. زیرا درخواست های ما به طور کامل وظیفه تبادل داده بین صفحات اینترنتی را انجام می دهد.
بیایید ابتدا یک درخواست GET را بررسی کنیم. بیایید یک فایل index.php با یک کد html استاندارد ایجاد کنیم و یک فرم روی آن قرار دهیم، اجازه دهید فرم سفارش محصول باشد.
بیایید نگاهی به برچسب اینجا بیندازیم. فرم. دو پارامتر دارد عملو روش. اولی مسئول آدرس صفحه ای است که داده های خود را به آن منتقل می کنیم، دومی مربوط به روشی است که این داده ها توسط آن منتقل می شوند. در داخل این تگ، مجموعه ای از داده های خود را که می خواهیم منتقل کنیم، توصیف می کنیم. نام ها باید به داده ها اختصاص داده شوند (پارامتر نام). همچنین نوع ورودی مورد نیاز است ارسال، که دکمه ای است که داده ها را با کلیک کردن ارسال می کند.
بیایید فایل خود را ذخیره کرده و در یک مرورگر باز کنیم.
مسیر صفحه ما در مرورگر ".../index.php" است. در خود صفحه شاهد دو فیلد ورودی و یک دکمه هستیم. بیایید چیزی را در فیلدهای خود پر کنیم و روی دکمه "سفارش" کلیک کنیم. صفحه ما به روز شد بیایید به آدرس او نگاه کنیم: ".../index.php?orderName=Test&count=12". (من در فیلد اول کلمه "تست" را در "12" دوم تایپ کردم). همانطور که می بینیم آدرس صفحه کمی تغییر کرده است. واقعیت این است که انتقال پارامترهای GET توسط یک درخواست با اختصاص دادن آنها به رشته آدرس صفحه انجام می شود. پارامترها با کاراکتر '?' از آدرس اصلی و با کاراکتر '&' از پارامترهای مختلف جدا می شوند. ساختار پارامتر به شرح زیر است: پارامتر_نام=مقدار. نام پارامتر با مقدار مشخصه name در قسمت ورودی مطابقت دارد.
بیایید کد صفحه را کمی ویرایش کنیم:
حالا دوباره روی دکمه «سفارش» کلیک کنید. همانطور که می بینیم، صفحه به روز شده است، اما فیلدهای ما پر شده است. این به این دلیل است که ما یک مقدار پیش فرض برای فیلدهای خود ارائه کرده ایم. علاوه بر این، این مقادیر پارامتر GET دریافتی هستند. همانطور که در کد PHP می بینیم، پارامترهای GET یک آرایه با یک شاخص رشته ای برابر با نام پارامتر هستند. اگر اکنون با آدرس سایت بازی می کنیم و مقادیر پارامتر را در آن تغییر می دهیم و دکمه "Enter" را فشار می دهیم، دوباره متوجه تصویری با به روز رسانی صفحه و پر کردن فرم خود خواهیم شد.
بدیهی است که ارسال اطلاعات مخفی یا خدماتی در یک درخواست GET اشتباه است (و ایمن نیست). بهتر است از آن برای انتقال مثلا id خبری که باید از دیتابیس گرفته شود یا نام صفحه ای که باید نمایش داده شود استفاده کنید.
درخواست POST موضوع دیگری است. به طور مشابه کار می کند، اما پارامترها را در نوار آدرس ذخیره نمی کند. بیایید شکل خود را تغییر دهیم:
همانطور که می بینید، با این حال، چیز زیادی تغییر نکرده است! بیایید صفحه خود را باز کنیم، چیزی را در فیلدها پر کنید و دکمه "سفارش" را فشار دهید. همه چیز به همین صورت کار می کرد، با این حال، همانطور که در رشته پرس و جو می بینیم، آدرس "…/index.php" بدون هیچ گونه پارامتری به نمایش در می آید. بنابراین، ما به نوعی داده های خود را از چشمان کنجکاو "پنهان می کنیم". البته، این مفهوم پنهان بود، نه مشروط، زیرا این داده ها هنوز هم قابل رهگیری هستند، اما این داستان دیگری است. بیایید پارامترهای ".../index.php?orderName=Trololo&count=100" را به آدرس خود اضافه کرده و "Enter" را فشار دهید. همانطور که می بینیم، صفحه بارگیری شده است، اما حتی با وجود گذشتن پارامترها، فیلدها خالی هستند. این نشان می دهد که علیرغم شباهت زیاد، این نوع درخواست ها به هیچ وجه با یکدیگر تلاقی ندارند و در صورت لزوم، ارزش آن را دارد که برای هر نوع درخواست جداگانه یک هندلر بنویسید.
فکر می کنم همین کافی باشد. به نظرم اصول سوال با یک سر توضیح داده شده است.
و کمی بیشتر… فراموش نکنید که پارامترهای ارسال شده را بررسی کنید. اگر مطمئن هستید که پارامتر باید یک عدد باشد، تمام تلاشها برای ارسال یک مقدار غیر عددی و غیره را قطع کنید.
این پست برای توضیح نحوه انتقال داده ها از طریق اینترنت با استفاده از دو روش اصلی GET و POST در نظر گرفته شده است. من آن را به عنوان مکمل دستورالعمل ژنراتور شیفت کاری برای کسانی که به سختی به جزئیات علاقه مند هستند نوشتم ☺.
به آدرس زیر بروید (این برای توضیح تصویری است): http://calendarin.net/calendar.php?year=2016 به نوار آدرس مرورگر توجه کنید: calendarin.net/calendar.php ?year=2016فایل اصلی نامگذاری شده و به دنبال آن علامت سوال (؟) و پارامتر "year" با مقدار "2016" آمده است. بنابراین، هر چیزی که به دنبال علامت سوال می آید، درخواست GET است. همه چیز ساده است. برای ارسال بیش از یک پارامتر، آنها باید با علامت (&) از هم جدا شوند. مثال: calendarin.net/calendar.php ?year=2016&display=روزهای کاری-و-روزهای-تعطیلی
فایل اصلی هنوز نامگذاری شده است، به دنبال آن یک علامت سوال (؟)، سپس یک پارامتر "year" با مقدار "2016"، سپس یک علامت (&)، سپس یک پارامتر "نمایش" با مقدار "work-". روزها و روزهای تعطیل".
پارامترهای GET را می توان مستقیماً در نوار آدرس مرورگر تغییر داد. برای مثال، تغییر مقدار "2016" به "2017" و فشار دادن کلید، شما را به تقویم سال 2017 می برد.
این یک انتقال داده به صورت مخفی است (آدرس صفحه تغییر نمی کند). یعنی فقط با کمک یک برنامه (اسکریپت) می توانید آنچه را که منتقل شده است ببینید. به عنوان مثال، در ابزار زیر برای شمارش کاراکترهای متن، داده های اولیه به روش POST منتقل می شود: http://usefulonlinetools.com/free/character-counter.php
در صورت داشتن هرگونه سوال، نظر و ایمیل من در خدمت شما هستم.
علاوه بر روش GET که در یادداشت قبلی به آن پرداختیم، روش دیگری برای ارسال درخواست از طریق پروتکل HTTP وجود دارد - روش POST. روش POST نیز اغلب در عمل مورد استفاده قرار می گیرد.
اگر برای دسترسی به سرور با استفاده از روش GET کافی بود که یک درخواست را در URL تایپ کنیم، در روش POST همه چیز طبق یک اصل متفاوت کار می کند.
برای انجام این نوع درخواست باید روی دکمه ای با ویژگی type="submit" که در صفحه وب قرار دارد کلیک کنیم. توجه داشته باشید که این دکمه در عنصر قرار دارد
این کد HTML را در نظر بگیرید:
![](https://i1.wp.com/steptosleep.ru/wp-content/uploads/2018/06/92221.png)
اگر کاربر مقداری متن را در قسمت متن وارد کرده و روی دکمه "ارسال" کلیک کند، متغیر متن با مقدار محتوایی که کاربر وارد کرده است به سرور ارسال می شود.
درخواست های POST و GET به زبان ساده
این متغیر با روش POST ارسال خواهد شد.
اگر به شکل زیر بنویسید:
داده ها با استفاده از روش GET ارسال خواهند شد.
اگر در مورد درخواست GET، مقدار دادهای که میتوانیم منتقل کنیم با طول نوار آدرس مرورگر محدود میشد، در مورد درخواست POST، چنین محدودیتی وجود ندارد و میتوانیم مقادیر قابل توجهی را انتقال دهیم. از اطلاعات
تفاوت دیگر روش POST با متد GET این است که متد POST تمامی متغیرها و مقادیر آنها را در بدنه خود (Entity-Body) مخفی می کند. در مورد روش GET، آنها در رشته درخواست (Request-URI) ذخیره می شدند.
در اینجا نمونه ای از درخواستی است که با استفاده از روش POST انجام شده است:
POST / HTTP/1.0\r\n
میزبان: www.site.ru\r\n
مرجع: http://www.site.ru/index.html\r\n
کوکی: درآمد=1\r\n
نوع محتوا: application/x-www-form-urlencoded\r\n
طول محتوا: 35\r\n
\r\n
login=Dima&password=12345
بنابراین، هنگام انتقال داده ها با استفاده از روش POST، رهگیری آن برای مهاجم بسیار دشوارتر خواهد بود، زیرا آنها از دید مستقیم پنهان هستند، بنابراین روش POST برای انتقال داده، روش امن تری در نظر گرفته می شود.
علاوه بر این، با استفاده از روش POST، می توانید نه تنها متن، بلکه داده های چند رسانه ای (تصاویر، صدا، ویدئو) را نیز انتقال دهید. یک پارامتر Content-Type ویژه وجود دارد که نوع اطلاعات ارسالی را مشخص می کند.
و در نهایت برای دریافت داده هایی که با این روش روی سرور منتقل شده اند از متغیر POST استفاده می شود.
نمونه ای از پردازش در PHP:
echo $_POST['text'];
?>
در آخرین یادداشت، تصمیم گرفتیم که مرورگر (مشتری) درخواست های HTTP را به سرور ارسال کند و سرور پاسخ های HTTP را برای مشتری ارسال کند. این درخواست ها و پاسخ ها بر اساس قوانین خاصی انجام می شود. چیزی مانند نحو وجود دارد که چگونه و با چه ترتیبی باید نوشته شود. باید یک ساختار کاملاً تعریف شده وجود داشته باشد.
بیایید نگاهی دقیق تر به این ساختار بیندازیم که درخواست ها و پاسخ ها را در پروتکل HTTP ایجاد می کند.
درخواست HTTP از سه بخش اصلی تشکیل شده است که به ترتیب فهرست شده در زیر ظاهر می شوند. بین سرصفحه ها و متن پیام یک خط خالی (به عنوان جداکننده) وجود دارد که نشان دهنده کاراکتر خط جدید است.
رشته خالی (جداکننده)
درخواست ارسال و دریافت کنید، تفاوت آنها چیست و کدام بهتر است و برای چه اهدافی؟
بدن پیام (Entity Body) - پارامتر اختیاری
رشته پرس و جو- روش انتقال، URL برای دسترسی و نسخه پروتکل HTTP را مشخص می کند.
عناوین- توصیف بدنه پیام، ارسال پارامترهای مختلف و سایر اطلاعات و اطلاعات.
بدنه ی پیام- این خود داده ای است که در درخواست منتقل می شود. متن پیام اختیاری است و ممکن است حذف شود.
هنگامی که ما یک درخواست پاسخ از سرور دریافت می کنیم، بدنه پیام اغلب محتوای صفحه وب است. اما، هنگام درخواست به سرور، گاهی اوقات ممکن است وجود داشته باشد، به عنوان مثال، زمانی که داده هایی را که در فرم بازخورد پر کرده ایم به سرور منتقل می کنیم.
با جزئیات بیشتر، هر یک از عناصر درخواست را در یادداشت های بعدی بررسی خواهیم کرد.
بیایید، برای مثال، یک درخواست واقعی به سرور را در نظر بگیریم. من هر قسمت از درخواست را با رنگ متفاوتی هایلایت کردم: رشته جستجو سبز، سرصفحه ها نارنجی و متن پیام آبی است.
درخواست مرورگر:
میزبان: webgyry.info
کوکی: wp-settings
اتصال: زنده نگه دارید
در مثال زیر، بدنه پیام از قبل وجود دارد.
پاسخ سرور:
نوع محتوا: text/html; charset=UTF-8
Transfer-Encoding: تکه تکه شده
اتصال: زنده نگه دارید
Keep Alive: timeout=5
X-Pingback: //webgyry.info/xmlrpc.php
اینها پیام هایی هستند که از طریق پروتکل HTTP بین مشتری و سرور رد و بدل می شوند.
به هر حال، آیا می خواهید بدانید که استفاده از "اهداف" Yandex Metrica و Google Analytics در برخی از عناصر سایت شما معنی دارد یا خیر؟
مواردی را که کار نمی کند حذف کنید، موارد مفید را اضافه کنید و درآمد خود را دو برابر کنید.
دوره تعیین هدف Yandex Metrics.
دوره تعیین هدف گوگل آنالیتیکس.
سرویس گیرنده HTTP درخواستی را در قالب یک پیام درخواست به سرور ارسال می کند که دارای فرمت زیر است:
- رشته پرس و جو (عنصر مورد نیاز)
- عنوان (عنصر اختیاری)
- رشته خالی (عنصر مورد نیاز)
- متن پیام (عنصر اختیاری)
بیایید هر یک از این عناصر را جداگانه در نظر بگیریم.
رشته پرس و جو
رشته درخواست با یک نشانه متد و سپس URI درخواست و نسخه پروتکل شروع می شود. عناصر با فاصله از یکدیگر جدا می شوند:
بیایید این عنصر را با جزئیات بیشتری بررسی کنیم.
روش درخواست
این عنصر روشی را که باید در سمت سرور در URI مشخص شده فراخوانی شود، مشخص می کند.
هشت روش در HTTP وجود دارد:
- سر
برای دریافت رشته وضعیت و عنوان از سرور توسط URI استفاده می شود. داده ها را تغییر نمی دهد. - گرفتن
برای دریافت داده ها از سرور در URI مشخص شده استفاده می شود. داده ها را تغییر نمی دهد. - پست
برای ارسال داده ها به سرور (مانند اطلاعات مربوط به توسعه دهنده و غیره) با استفاده از فرم های HTML استفاده می شود. - قرار دادن
تمام داده های قبلی روی منبع را با داده های بارگذاری شده جدید جایگزین می کند. - حذف
تمام داده های فعلی منبع مشخص شده توسط URI را حذف می کند. - اتصال
یک اتصال تونلی به سرور در URI مشخص شده برقرار می کند. - گزینه ها
ویژگی های اتصال را برای منبع مشخص شده شرح می دهد. - پی گیری
یک پیام حاوی یک ردیابی از مکان منبع مشخص شده در URI ارائه می دهد.
URI را درخواست کنید
URI (Uniform Resource Identifier) شناسه منبعی است که درخواست به آن ارسال می شود. فرمت زیر رایج ترین فرمت URI است:
‘*’ هنگامی که درخواست HTTP برای یک منبع خاص نیست، بلکه برای یک سرور استفاده می شود. فقط زمانی استفاده می شود که روش لازم نباشد روی منبع اعمال شود. مثلا،
absoluteURIهنگامی که یک درخواست HTTP به یک پروکسی ارسال می شود استفاده می شود. از پروکسی خواسته می شود که درخواست را از حافظه پنهان موجود ارسال کند و پاسخی را برمی گرداند. مثلا:
مسیر_ مطلق | منبعبیشتر استفاده می شود
آموزش کار با درخواست های GET و POST
یک منبع خاص از یک سرور خاص درخواست شده است. به عنوان مثال، یک کلاینت می خواهد منبعی را از یک سرور در پورت 80 دریافت کند. آدرس منبع "www.proselyte.net" است و درخواست زیر را ارسال می کند:
درخواست فیلدهای سرصفحه
فیلدهای هدر به مشتری اجازه می دهد تا اطلاعات اضافی در مورد درخواست و در مورد خود را به سرور ارسال کند. این فیلدها به عنوان اصلاح کننده پرس و جو عمل می کنند.
در زیر لیستی از مهمترین فیلدهای سرصفحه قابل استفاده آورده شده است:
- Charset را بپذیرید
- رمزگذاری را بپذیرید
- پذیرش-زبان
- مجوز
- انتظار
- اگر مطابقت داشته باشد
- If-Modified-Since
- اگر-هیچ-تطابق
- اگر محدوده
- If-Unmodified-Since
- دامنه
- ارجاع دهنده
- عامل کاربر
اگر بخواهیم کلاینت و وب سرور خود را پیاده سازی کنیم، می توانیم فیلدهای هدر خود را ایجاد کنیم.
مثال درخواست HTTP
این مطالعه ما در مورد درخواست های HTTP را به پایان می رساند.
در مقاله بعدی به پاسخ های HTTP خواهیم پرداخت.
یکی از راه های ارسال درخواست HTTP به سرور استفاده از روش GET است. این روش رایج ترین است و درخواست ها به سرور اغلب با استفاده از آن انجام می شود.
ساده ترین راه برای ایجاد درخواست GET این است که URL را در نوار آدرس مرورگر تایپ کنید.
مرورگر اطلاعات زیر را به سرور ارسال می کند:
GET/HTTP/1.1
میزبان: webgyry.info
عامل کاربر: Mozilla/5.0 (Windows NT 6.1; rv:18.0) Gecko/20100101 Firefox/18.0
پذیرش: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip، deflate
کوکی: wp-settings
اتصال: زنده نگه دارید
درخواست دارای دو بخش است:
1. خط درخواست
2. سرصفحه ها (سرصفحه های پیام)
توجه داشته باشید که درخواست GET بدنه پیام ندارد. اما این بدان معنا نیست که با کمک آن نمی توانیم هیچ اطلاعاتی را به سرور منتقل کنیم.
تفاوت بین روش های GET و POST
این را می توان با استفاده از پارامترهای خاص GET انجام داد.
برای افزودن پارامترهای GET به یک درخواست، باید یک "؟" در انتهای URL قرار دهید. و بعد از آن شروع به پرسیدن از آنها طبق قانون زیر کنید:
parameter_name1=parameter_value1& parameter_name2=parameter_value2&…
جداکننده بین پارامترها علامت "&" است.
به عنوان مثال، اگر بخواهیم دو مقدار نام کاربری و سن را به سرور ارسال کنیم، این کار را می توان با خط زیر انجام داد:
http://site.ru/page.php?name=dima&age=27
هنگامی که این پرس و جو اجرا می شود، داده ها به متغیر محیطی QUERY_STRING می روند، که می توان آن را با استفاده از یک زبان برنامه نویسی وب سمت سرور در سرور به دست آورد.
در اینجا مثالی از نحوه انجام این کار در PHP آورده شده است.
echo "نام شما: ". $_GET["نام"]. "
»;
echo "سن شما این است: " . $_GET["سن"]. "
»;
?>
ساختار $_GET["parameter_name"] به شما امکان می دهد مقدار پارامتر ارسال شده را نمایش دهید.
در نتیجه اجرای این کد در مرورگر، خواهید دید:
نام شما: دیما
سن شما: 27
ما همچنین با استفاده از روش GET درخواستی را به سرور ارسال می کنیم.
HTTP یک پروتکل انتقال ابرمتن، یکی از پروتکل های پشته TCP/IP است. این پروتکل در ابتدا برای ارسال و دریافت صفحات HTML ایجاد شد، اما اکنون به خوبی برای سیستم های اطلاعاتی توزیع شده استفاده می شود. این پروتکل یکی از پر استفاده ترین پروتکل ها در شبکه جهانی وب است.
تصویر 1
بر اساس طرح درخواست/پاسخ. هنگامی که یک کلاینت درخواستی را به یک سرور ارسال می کند، می تواند این کار را با 3 نوع درخواست انجام دهد: GET، PUT، و POST.
دریافت درخواست HTTP
گرفتندرخواست مشتری برای اطلاعات است. مرورگر وب مشتری یک پیام GET برای بازیابی صفحات از آن ارسال می کند. درخواست دارای دو بخش است:
- رشته پرس و جو
- سرفصل ها
درخواست GET بدنه داده ای ندارد، اما این بدان معنا نیست که نمی تواند هیچ داده ای را به سرور ارسال کند. با استفاده از پارامترهای خاص در رشته URL، می توانید داده ها را به سرور ارسال کنید. امضاء کردن ? بعد از دامنه در URL به این معنی است که پارامترها بیشتر منتقل می شوند. شکل 2 دقیقاً نشان می دهد که مرورگر چه اطلاعاتی را برای سرور ارسال می کند.
نقاشی - 2
ارسال و ارسال درخواست HTTP
این دو روش به منظور ارسال اطلاعات به وب سرور پیاده سازی می شوند. به عنوان مثال با استفاده از وب فرم های خاص، با پر کردن آنها، آنها را به روش POST به سرور ارسال می کنیم. PUT، از طرف دیگر، منابع یا داده ها را در یک وب سرور (تصویر، ویدئو) آپلود می کند.
HTTP یک پروتکل امن نیست و پیام های POST را می توان رهگیری و خواند زیرا رمزگذاری نشده است. برای امنیت انتقال داده ها با استفاده از روش POST از پروتکل HTTPS استفاده می شود. داده ها را رمزگذاری می کند و می تواند احراز هویت را انجام دهد. همچنین الزامات اضافی را برای انتقال اطلاعات بین لایه های حمل و نقل و برنامه پیاده سازی می کند.
تفاوت های اصلی بین روش های POST و GET در جدول 1 نشان داده شده است.
شکل 3 قوانین اساسی را نشان می دهد که هنگام انتخاب روش GET یا POST برای اجرای کار بر روی سرور خود باید رعایت کنید.