Что такое протокол HTTP?

02.04.2020

HTTP — широко распространённый протокол передачи данных, изначально предназначенный для передачи гипертекстовых документов (то есть документов, которые могут содержать ссылки, позволяющие организовать переход к другим документам).

Аббревиатура HTTP расшифровывается как HyperText Transfer Protocol, «протокол передачи гипертекста». 

Задача, которая традиционно решается с помощью протокола HTTP — обмен данными между пользовательским приложением, осуществляющим доступ к веб-ресурсам (обычно это веб-браузер) и веб-сервером. На данный момент именно благодаря протоколу HTTP обеспечивается работа Всемирной паутины.

HTTP протокол - по сути это обычный текстовый протокол, по которому идет обмен данных между сайтом и сервером.

Что такое URL?

URL является  неотъемлемой частью HTTP протокола, который позволяет понять к какой части (ресурсу) сайта мы обращаемся. Так же URL является общепринятым стандартом записи адреса и указания на расположение ресурса в интернете. URL расшифровывается как Uniform Resource Locator, это переводится как единый указатель ресурсов. Однако можно встретить также более раннюю расшифровку этой аббревиатуры URL как — Universal Resource Locator (универсальный локатор ресурсов). 

Формат URL

Основной формат записи структуры URL адреса выглядит  вот так: ://login:password@host:port/path?params
— чаще всего имеется в виду протокол.
login – логин пользователя, используемый для авторизации на ресурсе.
password – пароль пользователя для авторизации.
host – доменное имя хоста.
port – порт хоста, используемый во время подключения.
path– путь, по которому находится запрашиваемый ресурс на сервере.
params – значение переменных и идентификатор на определенном ресурсе.

Вот например самый распространенные форматы урлов:

https://ru.wikipedia.org/wiki/Заглавная_страница

https://ru.wikipedia.org/wiki/Заглавная_страница?page=2

https://ru.wikipedia.org/wiki/Заглавная_страница/Раздел_математика#целые_числа

Как отправить HTTP-запрос?

Для этого вы можете воспользоваться любой подходящей утилитой командной строки. Например, встроенной утилитой telnet, для этого в командной строке :

telnet gogogogogo.xyz 80

После того, как вы подключитесь к серверу, нужно отправить HTTP-запрос. Это, кстати, очень легко — HTTP-запросы могут состоять всего из двух строчек.

GET / HTTP/1.1
Host: gogogogogo.xyz

При этом учитывайте, что для перевода строки следует использовать символ возврата каретки CR (Carriage Return), за которым следует символ перевода строки LN (Line Feed). После объявления последнего заголовка последовательность символов для перевода строки добавляется дважды.

После этого в ответ вы получите что то вида:

HTTP/1.1 200 OK
Server: nginx/1.3.1
Date: Sat, 25 Mar 2014 22:53:46
GMT Content-Type: application/octet-stream
Content-Length: 7
Last-Modified: Sat, 08 Mar 2014 22:53:30 GMT
Connection: keep-alive
Accept-Ranges: bytes

Ниже будет содержимое страницы сайта в виде HTML кода, которое следует через два перевода строки после последнего заголовка. 

Еще по теме HTTP протокол

Коды ответа HTTP сервера

Коды ответа сервера. Самые распространенные коды (коды состояния HTTP)

Что такое протокол HTTP/2