0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<h2>Содержание</h2>
1
<h2>Содержание</h2>
2
<ul><li><a>Chapter 2: HTTP 1.0</a></li>
2
<ul><li><a>Chapter 2: HTTP 1.0</a></li>
3
<li><a>Chapter 3: HTTP 1.1</a></li>
3
<li><a>Chapter 3: HTTP 1.1</a></li>
4
<li><a>Chapter 4: Тело HTTP-запроса</a></li>
4
<li><a>Chapter 4: Тело HTTP-запроса</a></li>
5
<li><a>Chapter 5: Отправка форм</a></li>
5
<li><a>Chapter 5: Отправка форм</a></li>
6
<li><a>Chapter 7: Передача данных query string</a></li>
6
<li><a>Chapter 7: Передача данных query string</a></li>
7
<li><a>Chapter 8: Перенаправления</a></li>
7
<li><a>Chapter 8: Перенаправления</a></li>
8
<li><a>Chapter 9: Базовая аутентификация</a></li>
8
<li><a>Chapter 9: Базовая аутентификация</a></li>
9
<li><a>Chapter 10: Базовая аутентификация</a></li>
9
<li><a>Chapter 10: Базовая аутентификация</a></li>
10
</ul><h2>Chapter 2: HTTP 1.0</h2>
10
</ul><h2>Chapter 2: HTTP 1.0</h2>
11
<p>Для взаимодействия с ВЭБ-сервером нам необходимо к нему подключиться,</p>
11
<p>Для взаимодействия с ВЭБ-сервером нам необходимо к нему подключиться,</p>
12
<p>telnet [ip] [port]</p>
12
<p>telnet [ip] [port]</p>
13
<p>далее общение идет через текстовой протокол HTTP</p>
13
<p>далее общение идет через текстовой протокол HTTP</p>
14
<h2>Chapter 3: HTTP 1.1</h2>
14
<h2>Chapter 3: HTTP 1.1</h2>
15
<ul><li>Помимо обязательной строки<strong>querry line (GET / HTTP/1.0)</strong>добавляется еще одна дополнительная строка<strong>host: hexlet.io</strong></li>
15
<ul><li>Помимо обязательной строки<strong>querry line (GET / HTTP/1.0)</strong>добавляется еще одна дополнительная строка<strong>host: hexlet.io</strong></li>
16
<li>Введено понятие Keep-alive, позволяющее поддерживать постоянное tcp\ip соединение после одного запроса</li>
16
<li>Введено понятие Keep-alive, позволяющее поддерживать постоянное tcp\ip соединение после одного запроса</li>
17
<li>для ручного закрытия tcp/ip запроса юзаем заголовок<strong>connection: close</strong></li>
17
<li>для ручного закрытия tcp/ip запроса юзаем заголовок<strong>connection: close</strong></li>
18
</ul><h2>Chapter 4: Тело HTTP-запроса</h2>
18
</ul><h2>Chapter 4: Тело HTTP-запроса</h2>
19
<ul><li>для формирования тела HTTP запроса/ответа необходимо использовать дополнительные заголовки</li>
19
<ul><li>для формирования тела HTTP запроса/ответа необходимо использовать дополнительные заголовки</li>
20
</ul><ol><li>Content-Length: 218(в байтах)</li>
20
</ul><ol><li>Content-Length: 218(в байтах)</li>
21
<li>Content-Type: text/plain (тип данных)</li>
21
<li>Content-Type: text/plain (тип данных)</li>
22
</ol><h2>Chapter 5: Отправка форм</h2>
22
</ol><h2>Chapter 5: Отправка форм</h2>
23
<ul><li>Для отправки форм используем:<strong>Content-Type: application/x-www-form-urlencoded</strong>Формата Get req: admin=Vasya&pass=567dfs, можно юзать закодированные символы =<strong>%3D</strong></li>
23
<ul><li>Для отправки форм используем:<strong>Content-Type: application/x-www-form-urlencoded</strong>Формата Get req: admin=Vasya&pass=567dfs, можно юзать закодированные символы =<strong>%3D</strong></li>
24
</ul><h2>Chapter 7: Передача данных query string</h2>
24
</ul><h2>Chapter 7: Передача данных query string</h2>
25
<ul><li>GET /?key=value HTTP/1.1 пример query-запроса в заголовке</li>
25
<ul><li>GET /?key=value HTTP/1.1 пример query-запроса в заголовке</li>
26
</ul><h2>Chapter 8: Перенаправления</h2>
26
</ul><h2>Chapter 8: Перенаправления</h2>
27
<ul><li>302/301 коды - это перенаправление в локацию указанную как заголовок<strong>Location: /</strong></li>
27
<ul><li>302/301 коды - это перенаправление в локацию указанную как заголовок<strong>Location: /</strong></li>
28
</ul><h2>Chapter 9: Базовая аутентификация</h2>
28
</ul><h2>Chapter 9: Базовая аутентификация</h2>
29
<ul><li>401 - ошибка базовой Аутентификации</li>
29
<ul><li>401 - ошибка базовой Аутентификации</li>
30
<li>Заголовок для Аутентификации: Authorization: Basic ":" | base64</li>
30
<li>Заголовок для Аутентификации: Authorization: Basic ":" | base64</li>
31
</ul><h2>Chapter 10: Базовая аутентификация</h2>
31
</ul><h2>Chapter 10: Базовая аутентификация</h2>
32
<ul><li>2 типа печенек: Сессионные - удаляются при закрытии браузера. Постоянные - устанавливаются с помощью заголовков<strong>set-cookie.</strong></li>
32
<ul><li>2 типа печенек: Сессионные - удаляются при закрытии браузера. Постоянные - устанавливаются с помощью заголовков<strong>set-cookie.</strong></li>
33
<li>MAX-AGE=2592000 - кол-во миллисекунд до удаления куки</li>
33
<li>MAX-AGE=2592000 - кол-во миллисекунд до удаления куки</li>
34
<li>Уникальность куки определяется тремя параметрами key (имя куки), domain и path. Это значит, что если какую-то куку нужно переустановить, например, поменять время её жизни, то при следующем запросе в set-cookie эти параметры должны совпадать. Если хотя бы один из них отличается, то будет установлена новая кука.</li>
34
<li>Уникальность куки определяется тремя параметрами key (имя куки), domain и path. Это значит, что если какую-то куку нужно переустановить, например, поменять время её жизни, то при следующем запросе в set-cookie эти параметры должны совпадать. Если хотя бы один из них отличается, то будет установлена новая кука.</li>
35
</ul>
35
</ul>