HTTP заголовки, используемые в Payload. Что это вообще?
Бесплатный интернет
Всем привет. Настало время поговорить о том, что вообще из себя представляет так называемый Payload, что это такое и что означает каждая строка в нем. Ранее мы обсуждали связную тему - о кодах ответа сервера, рекомендуется к прочтению.
Заголовки HTTP (англ. HTTP Headers) — это строки в HTTP-сообщении, содержащие разделённую двоеточием пару имя-значение. Формат заголовков соответствует общему формату заголовков текстовых сетевых сообщений ARPA. Заголовки должны отделяться от тела сообщения хотя бы одной пустой строкой.
Пример таких заголовков:
Host: net.tutsplus.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Payload в наших VPN состоит именно из этих HTTP-заголовков, только разделяются они, как правило, не пустой строкой, а всяческими шаблонами типа [crlf], чтобы не возникало путаницы в переносах строк разных кодировок текста. В SVL Injector эти шаблоны называются Keywords - ключевые слова.

Заголовки HTTP позволяют клиенту и серверу отправлять дополнительную информацию с HTTP запросом или ответом. В HTTP-заголовке содержится не чувствительное к регистру название, а затем после (:) непостредственно значение. Пробелы перед значением игнорируются.
HTTP-заголовки сопровождают обмен данными по протоколу HTTP. Они могут содержать описание данных и информацию, необходимую для взаимодействия между клиентом и сервером. Заголовки и их статусы перечислены в реестре IANA, который постоянно обновляется.
Как вообще это работает.
Копипасты с непонятных документаций с вас хватит, теперь перейдем к делу.

Когда вы вводите URL-адрес в адресной строке, ваш браузер отправляет HTTP-запрос, и он может выглядеть так:
GET /inetforfree HTTP/1.1
Host: t.me
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: PHPSESSID=r2t5uvjq435r4q7ib3vtdjq120
Pragma: no-cache
Cache-Control: no-cache
Первая строка (указана на схеме как "request line") содержит некоторую базовую информацию по запросу. Остальное - HTTP заголовки.
После этого запроса ваш браузер получает от сайта ответ HTTP, который тоже содержит заголовки и может выглядеть так:
HTTP/1.x 200 OK
Transfer-Encoding: chunked
Date: Sat, 28 Nov 2019 04:36:25 GMT
Server: LiteSpeed
Connection: close
X-Powered-By: W3 Total Cache/0.8
Pragma: public
Expires: Sat, 28 Nov 2009 05:36:25 GMT
Etag: "pub1259380237;gz"
Cache-Control: max-age=3600, public
Content-Type: text/html; charset=UTF-8
Last-Modified: Sat, 28 Nov 2009 03:50:37 GMT
X-Pingback: https://t.me/inetforfree
Content-Encoding: gzip
Vary: Accept-Encoding, Cookie, User-Agent
Первая строка (status line на схеме) - это cтрока с кодом ответа сервера, за которой следуют HTTP-заголовки, а потом - содержимое страницы, но оно нас не интересует.
Так вот именно по этим параметрам и ориентируются наши операторы сотовой связи, открыть ли нам бесплатный доступ к сайту в HTTP заголовках, или это какой-нибудь абсолютно левый сайт, недоступный при нулевом балансе. И именно подменой данных заголовков и занимаются наши VPN'ы - от нас на VPN сервера улетают кастомные, измененные нами заголовки HTTP, а с сервера VPN запрос идет уже к сайту, уже не с кастомными заголовками, но какая разница - оператору нету до них никакого дела. И в обратной последовательности к нам уже прилетает ответ от сервера - HTTP заголовки и содержимое. Улавливаете суть?)
Так что в нашем случае в схему работы, которая была выше, мы можем мысленно поставить посредине ее еще и сервер VPN.
Вот здесь можно ознакомиться со списком всех возможных HTTP заголовков, если вам вдруг стало это интересно.
Читайте нас - Бесплатный интернет.