0% нашли этот документ полезным (0 голосов)
1 просмотров

JS HTTP

Документ описывает протокол HTTP, его структуру и основные компоненты, включая стартовые строки, методы запросов и коды состояния. Протокол работает поверх TCP/TLS и является безсостоянием, что означает отсутствие сохранения состояния между запросами. Также рассматриваются заголовки HTTP, их типы и функции, а также тело сообщения, которое может содержать данные запроса или ответа.

Загружено:

edelisakson
Авторское право
© © All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PPTX, PDF, TXT или читать онлайн в Scribd
0% нашли этот документ полезным (0 голосов)
1 просмотров

JS HTTP

Документ описывает протокол HTTP, его структуру и основные компоненты, включая стартовые строки, методы запросов и коды состояния. Протокол работает поверх TCP/TLS и является безсостоянием, что означает отсутствие сохранения состояния между запросами. Также рассматриваются заголовки HTTP, их типы и функции, а также тело сообщения, которое может содержать данные запроса или ответа.

Загружено:

edelisakson
Авторское право
© © All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PPTX, PDF, TXT или читать онлайн в Scribd
Вы находитесь на странице: 1/ 18

WEB (HTTP)

CLIENT SERVER
PHP

DB

AJAX
CLIENT
SERVER

Application layer Application layer

Transport layer Transport layer


(tcp) (tcp)

Ip layer Ip layer
(ip) (ip)

Link layer Link layer

3
HTTP
(Hyper Text Transfer Protocol)

– работает поверх TCP/TLS


– работает запрос-ответ
– не поддерживает состояние (соединение) -

stateless
– текстовый
– расширяемый

https://tools.ietf.org/html/rfc2616

4
Примеры диалогов для
HTTP
Запрос клиента

Ответ сервера

5
Структура HTTP
Структура состоит из 3х основных частей, которые
передаются в указанном порядке

1. Стартовая строка (Starting line) – определяет тип


сообщения
2. Заголовки (Headers) — характеризуют тело
сообщения, параметры передачи и прочие
метаданные
3. Тело сообщения (Message Body) непосредственно
данные сообщения. Обязательно должно
отделяться от заголовков пустой строкой (\r\n).

Тело сообщения может отсутствовать, но стартовая


строка и заголовок являются обязательными
элементами 6
Стартовая строка HTTP
(Starting line)
Стартовые строки различаются для запроса и ответа

Строка запроса:

<Method><URI><HTTP Version>

1. Метод (Method) — тип запроса, одно слово


заглавными буквами.
2. URI – определяет путь к запрашиваемому
документу
3. Версия (Version) — пара разделенных точкой цифр

GET /person HTTP/1.1


7
Стартовая строка HTTP
(Starting line)
Строка ответа:

<HTTP Version><Status Code><Reason Phrase>

1. Версия (Version) — пара разделенных точкой цифр


2. Код состояния (Status Code) — три цифры. По коду
состояния определяется дальнейшее содержимое
сообщения и поведение клиента
3. Пояснение (Reason Phrase) – текстовое короткое
пояснение к коду ответа для пользователя. Никак
не влияет на сообщение и является
необязательным

HTTP/1.1 200 ОК
8
Метод запроса
(HTTP Method)

- Последовательность из любых символов, кроме


управляющих и разделителей

- Указывает на основную операцию над ресурсом

- Обычно метод представляет собой короткое


английское слово, записанное заглавными буквами

- Чувствительно к регистру

9
Метод запроса
(HTTP Method)
Метод Пояснение
OPTIONS Используется для определения возможностей веб-сервера или параметров
соединения для конкретного ресурса. Клиент должен указать в URI звездочку –
“*”
GET Используется для запроса содержимого указанного ресурса. Клиент может
передавать параметры выполнения запроса в URI целевого ресурса после
символа “?”
POST Применяется для передачи пользовательских данных заданному ресурсу

PUT Применяется для загрузки содержимого запроса на указанный в запросе URI

PATCH Аналогично PUT, но применяется только к фрагменту ресурса

DELETE Удаляет указанный ресурс

TRACE Возвращает полученный запрос так, что клиент может увидеть, какую
информацию промежуточные сервера добавляют или изменяют в запросе
CONNECT Преобразует соединение запроса в прозрачный TCP/IP-туннель, обычно чтобы
содействовать установлению защищенного SSL-соединения через
нешифрованный прокси
HEAD Используется для запроса определенных заголовков

10
Коды состояния
(Status Code)

Код Вид Пояснение


1ХХ Информационный Информирование о процессе передачи
(Informational) данных
2ХХ Успех (Success) Информирование о случаях успешного
принятия и обработки запроса клиента
3ХХ Перенаправление Сообщает клиенту, что для успешного
(Redirection) выполнения операции необходимо сделать
другой запрос (как правило по другому
URI)
4ХХ Ошибка клиента Указание ошибок со стороны клиента
(Client error)
5ХХ Ошибка сервера Информирование о случаях неудачного
(Server error) выполнения операции по вине сервера

11
Код Пояснение
200 Успешный запрос
ОК
201 В результате успешного выполнения запроса был создан новый ресурс
Created
202 Запрос был принят на обработку, но она не завершена
Accepted
203 Аналогично 200, но в этом случае передаваемая информация была взята не
Non-Authoritative из первичного источника
information
204 Сервер успешно обработал запрос, но в ответе были преданы только
No content заголовки без тела сообщения
400 Сервер обнаружил в запросе клиента синтаксическую ошибку
Bad request
401 Для доступа к запрашиваемому ресурсу требуется аутентификация
Unauthorized
403 Сервер понял запрос, но он отказывается его выполнять из-за ограничений в
Forbidden доступе для клиента к указанному ресурсу
404 Сервер понял запрос, но не нашел соответствующего ресурса по указанному
Not found URI
409 Запрос не может быть выполнен из-за конфликтного обращения к ресурсу
Conflict
501 Любая внутренняя ошибка сервера
Internal server error
503 Сервер временно не имеет возможности обрабатывать запросы по
Service Unavailable техническим причинам 12
Заголовки
(HTTP Headers)
- Это строки в HTTP-сообщении, содержащие
разделенную двоеточием пару параметр-значение
- Заголовки должны отделяться от тела сообщения
хотя бы одной пустой строкой

Все заголовки делятся на четыре основные группы

1. General headers (основные заголовки) – могут


включать в себя любое сообщения клиента и
сервера
2. Request headers (Заголовки запроса) –
используются только в запросах клиентов
3. Response headers (Заголовки ответов) – только
для ответов от сервера
4. Entity headers (Заголовки сущности) –
сопровождают каждую сущность сообщения 13
Основные заголовки
(General headers)
- Content-Type – тип документа

- Content-Length – длина сообщения

- Content-Encoding – кодирование документа

- Transfer-Encoding – формат передачи данных

- Connection – управление соединением

- Upgrade – смена протокола

14
Заголовки запросов
(Request headers)
- Authorization – авторизация, чаще всего
логин/пароль

- Cookie – передача состояния (сессии) на сервер

- Referer – URI предыдущего документа, контекст


запроса

- User-Agent – описание web-клиента, версия


браузера

- If-Modified-Since – условный GET запрос

- Accept – согласование содержимого


15
Заголовки ответов
(Response headers)
- Location – новый URI документа при
перенаправлениях

- Set-Cookie – установка состояния (сессии) в


браузере

- Last-Modified – дата последнего изменения


документа

- Date – дата на сервере, для согласования кешей

- Server – описание web-сервера, название и версия

16
Тело HTTP-сообщения
(Message body)

Если оно присутствует, то используется для передачи


тела объекта, связанного с запросом или ответом

Тело сообщения отличается от тела объекта (entity


body) только в том случае, когда применяется
кодирование передачи, что указывается полем
заголовка Transfer-encoding

17

Вам также может понравиться