Този материал е част от поредицата "Въведение в развитието на предприятието". Предишни статии:
здрасти Днес ще научим за протоколите HTTP и HTTPS. Но първо, нека изясним една точка: говорим за протоколи за изпращане на данни през мрежа на ниво приложение на OSI модела. Може би си спомняте, че се запознахме с OSI модела в една от предишните статии. Ако не си спомняте това, ето го .

Какво е протокол за комуникация на данни?
Това наричаме съгласуван набор от правила, които позволяват на разработчиците на различни услуги да изпращат информация във формат, който другите могат да разберат. Например, можете да използвате Google Chrome, за да получавате информация Howто от Facebook, така и от Twitter, тъй като разработчиците я изпращат чрез стандартния HTTP протокол, който позволява на вашия браузър да я обработва. Единните правила са много удобни за хората, които разработват сървърната част: има много библиотеки, които могат да преобразуват информация instead of вас и да я изпращат, използвайки подходящия протокол. Първоначално HTTP е замислен като протокол за изпращане на HTML страници. Това е начинът, по който се използваше дълго време, но сега програмистите често го използват, за да изпращат Howто низове, така и медийни файлове. Като цяло този протокол е универсално приет и многофункционален и е наистина лесен за използване. И сега ще проучим How да го използваме.Структурата на HTTP
Веднага трябва да отбележим, че HTTP протоколът се състои само от текст. Това, което най-много ни интересува, е структурата на този текст. Всяко съобщение се състои от три части:- Начален ред — Това определя някои домакински данни.
- Заглавки — Те описват параметрите на съобщението.
- Тяло — Това е съдържанието на съобщението. Основният текст трябва да бъде отделен от заглавията с празен ред.
Ето How изглежда една проста HTTP заявка:
GET / HTTP/1.1
Host: codegym.cc
User-Agent: firefox/5.0 (Linux; Debian 5.0.8; en-US; rv:1.8.1.7)
Началната линия показва:
- GET — Методът на заявката
- / — Пътят на заявката
- HTTP/1.1 — Версията на протокола
- Хост — Хостът, към който е addressирана заявката
- User-Agent — Клиентът, изпращащ заявката
https://cdn.codegym.cc/images/article/155cea79-acfd-4968-9361-ad585e939b82/original.pngsend?name1=value1&name2=value2
където codegym.cc е хостът, /send е пътят на заявката и ? е разделител, който показва, че параметрите на заявката следват. В края са изброени двойки ключ-стойност ("ключ=стойност"), разделени с амперсанд. POST — Този метод публикува информация на сървъра. POST заявката може да изпраща различни видове информация: параметри като двойки „ключ=стойност“, JSON, HTML code or дори файлове. Цялата информация се изпраща в тялото на съобщението. Например:
POST /user/create/json HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 28
Host: codegym.cc
{
"Id": 12345,
"User": "John"
}
Заявката се изпраща до codegym.cc/user/create/json, а versionта на протокола е HTTP/1.1. „Приемам“ показва формата на отговора, който клиентът очаква да получи. „Content-Type“ показва формата на тялото на съобщението, изпратено в заявката. „Дължина на съдържанието“ е броят знаци в тялото. Една HTTP заявка може да съдържа много различни заглавки. За повече информация вижте спецификацията на протокола .
HTTP отговори
След получаване на заявка, сървърът я обработва и изпраща отговор на клиента:
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 98
<html>
<head>
<title>An Example Page</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>
Началният ред на отговора съдържа versionта на протокола (HTTP/1.1), code на състоянието (200) и описание на състоянието (OK). Неговите заглавия включват типа и дължината на съдържанието. Основният текст на отговора съдържа HTML code, който браузърът изобразява като HTML page.
Кодове за състояние на отговор
Всичко е ясно по отношение на тялото и заглавките на съобщението, но трябва да кажем няколко думи за статус codeовете. Кодовете за състояние на отговор са винаги трицифрени. Първата цифра на codeа показва категорията на отговора:- 1xx — Информационен. Заявката е получена. Сървърът е готов да продължи.
- 2xx — Успешно. Искането е получено, разбрано и обработено.
- 3xx — Пренасочване. Трябва да се извършат допълнителни действия за обработка на заявката.
- 4xx — Грешка на клиента. Заявката съдържа грешки or не отговаря на протокола.
- 5xx — Грешка в сървъра. Заявката беше съставена правилно, но сървърът не можа да я обработи.
- 200 OK — Заявката е получена и обработена успешно.
- 201 Създаден — Заявката е получена и обработена успешно, което води до създаването на нов ресурс or екземпляр.
- 301 Преместен за постоянно — Исканият ресурс е преместен за постоянно. Следващите заявки към него трябва да се правят с помощта на новия address.
- 307 Временно пренасочване — Ресурсът е преместен временно. Засега той може да бъде достъпен чрез автоматично пренасочване.
- 403 Забранено — Искането беше разбрано, но се изисква разрешение.
- 404 Не е намерено — Сървърът не е намерил ресурса на този address.
- 501 Not Implemented — Сървърът не поддържа функционалността, необходима за отговор на заявката.
- 505 HTTP versionта не се поддържа — Сървърът не поддържа определената version на HTTP протокола.
GO TO FULL VERSION