Автор оригинала: David Wong.
Расположение Точек знаний протокола HTTP
Во-первых, рабочие характеристики и принципы работы протокола HTTP.
Рабочие характеристики
- На основе модели B/S
- Накладные расходы на связь невелики, просты и быстры, а стоимость передачи данных невелика.
- Использование гибкого и Тестируемого протокола передачи гипертекста
- Экономьте время передачи
- Без гражданства
Принцип работы
Клиент отправляет запрос на сервер, создает TCP-ссылку, указывает номер порта, по умолчанию 80, подключается к серверу, и сервер прослушивает запрос браузера. Как только запрос клиента будет услышан и тип запроса проанализирован, сервер вернет клиенту информацию о состоянии и содержимое данных.
2. Метод запроса протокола HTTP
1. ПОЛУЧИТЬ: Доступ к ресурсам
Метод GET используется для запроса доступа к ресурсам, идентифицируемым URI. Указанный ресурс анализируется на стороне сервера, и возвращается содержимое ответа.
2. ПОСТ: Орган Транспортного предприятия
Метод POST используется для передачи основного тела объекта. Хотя метод GET также может использоваться для передачи основного тела сущности, обычно он используется не для передачи метода GET, а для метода POST. Хотя функции POST аналогичны функциям GET, основная цель POST не в том, чтобы получить основное содержание ответа.
3. КЛАСТЬ: Передача файлов
Метод PUT используется для передачи файлов. Как и при загрузке файла FTP, для этого требуется, чтобы содержимое файла было включено в текст сообщения запроса, а затем сохранено в месте, указанном URI запроса. Однако, поскольку сам метод HTTP/1.1 PUT не имеет механизма аутентификации, любой может загружать файлы, возникают проблемы с безопасностью, поэтому общий веб-сайт не использует этот метод. Если мы сотрудничаем с механизмом проверки веб-приложения или если дизайн архитектуры использует стандарт REST (Передача репрезентативного состояния) для аналогичных веб-сайтов, мы можем открыть использование метода PUT.
4. ГОЛОВА: Получите заголовок сообщения
Метод HEAD, как и метод GET, не возвращает текст сообщения. Используется для подтверждения действительности URI, а также даты и времени обновлений ресурсов.
5. УДАЛИТЬ: Удаление файлов
Метод УДАЛЕНИЯ используется для удаления файлов, что противоположно методу PUT. Метод УДАЛЕНИЯ удаляет указанный ресурс в соответствии с URI запроса. Однако метод УДАЛЕНИЯ HTTP/1.1 не имеет механизма проверки, как и сам метод PUT, поэтому метод УДАЛЕНИЯ не используется на обычных веб-сайтах. По-прежнему можно использовать его открыто, когда он работает с механизмом проверки веб-приложений или когда он соответствует стандартам REST.
6. ОПЦИИ: Способ попросить о поддержке
Метод OPTIONS используется для запроса метода поддержки ресурсов, указанного для URI запроса.
7. СЛЕД: Путь отслеживания
Метод ТРАССИРОВКИ заключается в том, чтобы позволить веб-серверу вернуть клиенту предыдущий цикл связи с запросом. При отправке запроса введите значение в поле заголовка Max-Forwards и вычитайте число на 1 каждый раз, когда оно проходит через сервер. Когда значение просто падает до 0, передача прекращается, и сервер, принимающий запрос, возвращает ответ с кодом состояния 200 OK. Клиенты могут запрашивать, как обрабатываются, изменяются или подделываются отправленные запросы методом трассировки. Это связано с тем, что запросы, которые хотят подключиться к исходному и целевому серверам, могут пересылаться через прокси-сервер, а метод ТРАССИРОВКИ используется для подтверждения ряда операций, которые выполняются в процессе подключения. Однако метод ТРАССИРОВКИ используется не очень часто, и его легко вызвать XST (Межсайтовая трассировка) атаки, часто еще менее используемые.
3. Общие коды состояния HTTP
Ответственность кода состояния заключается в описании возвращаемого результата запроса, когда клиент отправляет запрос на сервер. С помощью кодов состояния пользователи могут узнать, правильно ли сервер обработал запрос или произошла ошибка.
1. 1XX Информация (Код Статуса Информации, Обработка Полученного Запроса)
2. 2XX Успех
200 ОК
Означает, что запросы от клиента обычно обрабатываются на стороне сервера.
204 Нет Контента
Код состояния означает, что запрос, полученный сервером, успешно обработан, но возвращаемое ответное сообщение не содержит тела сущности. Кроме того, не разрешается возвращать принципала какому-либо юридическому лицу. Например, когда запрос из браузера обрабатывается и возвращается 204 ответа, страница, отображаемая браузером, не обновляется. Как правило, он используется, когда от клиента на сервер отправляется только информация, в то время как клиенту не нужно отправлять новое информационное содержимое.
206 Частичное Содержание
Код состояния указывает, что клиент сделал запрос диапазона, и сервер успешно выполнил эту часть запроса GET. Ответное сообщение содержит содержимое сущности, указанное в диапазоне содержимого.
3. Перенаправление 3XX
301 Переехал Навсегда
Постоянное перенаправление. Этот код состояния указывает, что запрошенному ресурсу был выделен новый URI, который следует использовать позже. То есть, если URI, соответствующий ресурсу, был сохранен в качестве закладки, его следует повторно сохранить в соответствии с URI, запрошенным полем заголовка местоположения.
302 Временно переехать
Временное перенаправление. Код состояния указывает, что запрошенному ресурсу был выделен новый URI, и ожидается, что пользователь (на этот раз) будет использовать новый URI для доступа к нему. Подобно 301 Постоянно перемещенным кодам состояния, 302 кода состояния представляют ресурсы, которые перемещены не постоянно, а временно. Другими словами, URI, соответствующий перемещенным ресурсам, может измениться в будущем. Например, пользователь сохраняет URI в качестве закладки, но не обновляет закладку при появлении кода состояния 301, но все равно сохраняет URI, соответствующий странице, которая возвращает код состояния 302.
304 Не Модифицированный
Этот код состояния указывает, что когда клиент отправляет условный запрос, сервер разрешает запросу доступ к ресурсу, в то время как содержимое документа (с момента последнего доступа или в соответствии с условием запроса) не изменилось.
4. 4XX Ошибка клиента
400 Неправильный Запрос
Этот код состояния указывает на синтаксическую ошибку в сообщении запроса. При возникновении ошибки запрос необходимо изменить и отправить снова.
401 Неавторизованный
Код состояния указывает, что отправленный запрос нуждается в информации для аутентификации посредством HTTP-аутентификации (БАЗОВАЯ аутентификация, ДАЙДЖЕСТ-аутентификация). Кроме того, если был сделан предыдущий запрос, проверка подлинности пользователя завершится неудачей. Возвращаемый ответ, содержащий 401, должен содержать заголовок WWW-Аутентификации для запрошенного ресурса, чтобы оспорить информацию о пользователе. Когда браузер впервые получает 401 ответ, появляется диалоговое окно для аутентификации.
403 Запрещенный
Этот код состояния указывает, что сервер отказал в доступе к запрошенному ресурсу. Неспособность получить разрешение на доступ к файловой системе, некоторые проблемы с правами доступа (попытки доступа к IP-адресу неавторизованного отправителя) и т. Д. Могут быть причиной 403.
404 не найдено
Код состояния указывает, что запрошенный ресурс не может быть найден на сервере.
405 Метод Не Разрешен
Указывает, что метод HTTP, используемый текущим запросом, не разрешен сервером. Например, использование метода GET для запроса данных, для которых требуется метод POST.
5. Ошибка сервера 5XX
500 Внутренняя Ошибка Сервера
Код состояния указывает на то, что сервер допустил ошибку при выполнении запроса. Это может быть ошибка в веб – приложении или какой-то временный сбой.
502 плохой шлюз
Код состояния указывает на ошибку в связи между сервером и шлюзом/прокси-сервером.
503 Услуга Недоступна
Этот код состояния указывает на то, что сервер временно перегружен или проходит техническое обслуживание во время простоя и не может обрабатывать запросы.
504 Время ожидания шлюза время ожидания шлюза
Код состояния указывает, что сервер действует как шлюз или прокси-сервер, но вовремя не получает запросы от вышестоящего сервера.
4. Общие заголовки запросов и ответов протокола HTTP
1. Универсальное поле заголовка HTTP/1.1
Поле общего заголовка относится к заголовку, используемому как в сообщении запроса, так и в сообщении ответа.
Механизм Работы Кэша Настройки Управления Кэшем
Параметры инструкций являются необязательными и передаются между инструкциями. , Отдельно.
Контроль кэша: частный,, без кэша
- Инструкция по запросу кэша
| Принудительная повторная проверка на исходном сервере | ничего | без кэша |
| Содержимое запросов или ответов не кэшируется | ничего | нет-магазин |
| Максимальное возрастное значение ответа | существенный | Максимальный возраст = [секунды] |
| Получение ответов с истекшим сроком действия | Упущение | Макс.-несвежий (= [секунды]) |
| Ожидаемый ответ все еще действителен в течение указанного времени | существенный | Мин-свежесть= [секунды] |
| Прокси-сервер не может изменить тип носителя | ничего | нет-преобразование |
| Получение ресурсов из кэшей | ничего | только-если-кэшируется |
| Знак | – | расширение кэша |
- Инструкция по ответу кэша
| Кэш, который предоставляет ответ любой стороне | ничего | общественный |
| Возвращайте ответы только определенным пользователям | Упущение | частный |
| Действительность должна быть подтверждена до отлова | Упущение | без кэша |
| Содержимое запросов или ответов не кэшируется | ничего | нет-магазин |
| Прокси-сервер не может изменить тип носителя | ничего | нет-преобразование |
| Кэшируется, но должен быть подтвержден на исходном сервере | ничего | необходимо провести повторную проверку |
| Требуйте, чтобы промежуточный сервер кэша подтвердил правильность ответа кэша | ничего | прокси-повторная проверка |
| Максимальное возрастное значение ответа | существенный | Максимальный возраст = [секунды] |
| Максимальное значение возраста ответа сервера общего кэша | существенный | S-максимальное значение = [секунды] |
| Знак | – | расширение кэша |
Соединение
Поле заголовка подключения выполняет следующие две функции.
- Управление больше не перенаправляется в первое поле прокси-сервера
- Управление постоянными подключениями
Подключение: сохранить в живых Подключение: Обновление
Дата создает дату и время HTTP-сообщения.
Date: Tue, 03 Jul 2012 04:40:59 GMT Date: Tue, 03-Jul-12 04:40:59 GMT Date: Tue Jul 03 04:40:59 2012
Тип содержимого задает тип MIME отправителя запроса или соответствующего органа
Content-Type: application/x-www-form-urlencoded Content-Type: text/html; charset=utf-8
Кодирование содержимого задает тип кодирования, используемого для данных.
Content-Encoding: gzip
Длина байта Содержимого-Длина Тела запроса или ответа
Content-Length: 348
2. Общие поля заголовка запроса
Хост задает доменное имя сервера и номер TCP-порта. Если используется стандартный номер порта запроса на обслуживание, номер порта можно опустить.
Host: en.wikipedia.org:8080 Host: en.wikipedia.org
Принять задает принятый тип контента
Accept: text/plain
Принять-Кодировка устанавливает принятую кодировку символов.
Accept-Charset: utf-8
Принять-Кодирование задает принятый формат кодирования.
Accept-Encoding: gzip, deflate
Источник идентифицирует междоменные запросы ресурсов (сервер запросов устанавливает поля ответа “Управление доступом-Разрешение источника”)
Строковое значение агента пользователя-агент пользователя
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/21.0
Сервер настройки файлов cookie отправляет HTTP-файлы cookie с помощью Set-Cookie
Cookie: $Version=1; Skin=new;
Авторизация устанавливает учетные данные для проверки подлинности HTTP
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Реферер сообщает серверу URI исходного ресурса запрошенный
Referer: http://en.wikipedia.org/wiki/Main_Page
Исходный IP-адрес веб-сервера, подключенного клиентом X-Forwarded-For через HTTP-прокси или балансировщик нагрузки
X-Forwarded-For: client1, proxy1, proxy2 X-Forwarded-For: 129.78.138.66, 129.78.64.103
Прямой клиент подключает исходную информацию веб-службы через HTTP-прокси
Forwarded: for=192.0.2.60;proto=http;by=203.0.113.43 Forwarded: for=192.0.2.43, for=198.51.100.17
3. Поля Заголовка Общего Ответа
Разрешить уведомляет клиента о методе HTTP, поддерживаемом запросом
Allow: GET, HEAD
Управление доступом-Разрешение-Источник указывает, какие сайты могут участвовать в совместном использовании ресурсов между сайтами
Access-Control-Allow-Origin: *
Истекает устанавливает время истечения срока действия ответчика
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Последнее изменение Задает Дату последнего изменения объекта запроса
Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT
Количество секунд, в течение которых объект Age временно хранится в кэше прокси-сервера
Age: 3600
Идентификатор специфичной для ETag версии ресурса, обычно дайджест сообщения
ETag: "737060cd8c284d8af7ad3082f209582d"
Перенаправление обновления
Refresh: 5; url=http://www.w3.org/pub/WWW/People.html
Set-Настройка файлов cookie HTTP-Cookie
Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1
Оригинал: “https://developpaper.com/finishing-php-interview-http-protocol-knowledge-arrangement/”