Протоколът HTTP (Hypertext Transfer Protocol) е гръбнакът на уеб комуникацията. Всеки път, когато потребител влезе в уебсайт, към сървъра се отправя HTTP заявка. За потребителите на Linux разбирането на това как да правят и анализират HTTP заявките е от решаващо значение за уеб разработката, системната администрация и отстраняването на проблеми в мрежата. В тази статия се разглеждат структурата на HTTP заявките, различните методи и практически примери за взаимодействие с тях с помощта на инструменти на Linux.
Структура на HTTP заявка
Една HTTP заявка се състои от няколко компонента:
Ред на заявката: Това е първият ред на заявката и включва:
- HTTP метод: Посочва действието, което трябва да се извърши (например GET, POST).
- Request-URI: Ресурсът, който се иска (напр. /index.html).
- Версия на HTTP: Посочва версията на HTTP протокола (напр. HTTP/1.1).
Пример:
Заглавия: Те предоставят допълнителна информация за заявката. Заглавията могат да включват метаданни, като например типа на браузъра, приетите типове съдържание и токени за удостоверяване.Пример:
Пълен пример за HTTP заявка
Ето пълен пример за HTTP заявка, направена за влизане в уебсайт:
POST /login HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Linux; Android 10; Pixel 3 XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Mobile Safari/537.36 Content-Type: application/json
Content-Length: 50
{ "username": "exampleUser", "password": "examplePassword" }
HTTP методи
HTTP дефинира няколко метода, които определят действието, което трябва да се извърши върху даден ресурс. Най-често срещаните методи включват:
1. GET
- Цел: Извличане на данни от сървър.
- Характеристики:
- Безопасна и безпогрешна (няма странични ефекти).
- Параметрите се изпращат чрез URL адреса (низ от заявки).
Пример:
2. POST
- Цел: Изпращане на данни за обработка от сървъра (например създаване или актуализиране на ресурс).
- Характеристики:
- Не е идентична (многократното подаване може да има различни ефекти).
- Данните се изпращат в тялото на заявката.
Пример: