У вас нет прав на выполнение действия «редактирование этой страницы» по следующей причине:
Текст:
Веб-браузер использует протокол HTTP для связи с веб-сервером, на котором размещен сайт. Когда вы набираете [[URL]]-адрес в адресной строке браузера, он отправляет HTTP-запрос GET /about на сервер, где находится apihandyman.io, так же как когда потребитель [[API]] отправляет запрос на сервер [[REST]] API. Ответ, отправленный сервером, содержит код состояния 200 OK, за которым следует [[HTML]]-страница, соответствующая [[URL]]-адресу. === История === [[HTTP]] появился изначально для передачи размеченного [[гипертекст]]а, что для программных интерфейсов подходит слабо. [[HTML]] быстро эволюционировал в более строгий и машиночитаемый [[XML]], который быстро стал одним из общепринятых форматов описания вызовов [[API]]. С начала 2000-х [[XML]] начал вытесняться более простым и интероперабельным [[JSON]], и сегодня говоря о HTTP API, чаще всего имеют в виду такие интерфейсы, в которых данные передаются в формате [[JSON]] по протоколу [[HTTP]]. === Методы === Методы HTTP состоят из запросов: * GET * POST; * PUT * DELETE === HTTP-запрос === HTTP-запрос представляет собой # применение определённого глагола к [[URL]] с # указанием версии протокола, # передачей дополнительной мета-информации в заголовках и, возможно, # каких-то данных в теле запроса: POST /v1/orders HTTP/1.1 Host: our-api-host.tld Content-Type: application/json === Структура HTTP-сообщения === 1. Стартовая строка, в которой определяется адрес, по которому отправляется запрос, и тип сообщения. Указывается метод, который определяет действия при получении этого сообщения. Это может быть чтение данных, их отправка, изменение или удаление. 2. Заголовки (Headers), в которых прописаны определённые параметры сообщения. Например, может быть напрямую задан язык. 3. Тело запроса (Request Body), текст сообщения — данные, которые передаются. Например, файлы, отправляемые на сервер. [[Файл:Http.png|мини]] === Чем можно управлять через протокол HTTP === HTTP позволяет не только получать и передавать данные, но и управлять поведением сайта. Например, с помощью заголовков и тела сообщения можно управлять: ● Кэшем. Сервер расскажет, что и как долго кэшировать на стороне клиента. Так браузер клиента поймёт, какие элементы сайта нужно положить в кэш для будущего переиспользования. ● Аутентификацией. В заголовке HTTP можно настраивать специальные сессии и куки для быстрого входа по логину и паролю. Именно благодаря этому можно заходить на сайты, не вводя повторно логин и пароль. ● Сессиями. Текст HTTP-запроса позволяет серверу запомнить состояние сайта на стороне клиента. Например, чтобы сохранить его корзину или какие-то введённые данные даже при обновлении страницы. === Тело сообщения === Тело HTTP-сообщения (<code>message-body</code>), если оно присутствует, используется для передачи тела объекта, связанного с запросом или ответом. Тело сообщения отличается от тела объекта (<code>entity-body</code>) только в том случае, когда применяется кодирование передачи, что указывается полем заголовка <code>Transfer-Encoding</code>. message-body = entity-body | <entity-body закодировано согласно Transfer-Encoding> Поле <code>Transfer-Encoding</code> должно использоваться для указания любого кодирования передачи, применённого приложением в целях гарантирования безопасной и правильной передачи сообщения. Поле <code>Transfer-Encoding</code> — это свойство сообщения, а не объекта, и, таким образом, может быть добавлено или удалено любым приложением в цепочке запросов/ответов. Правила, устанавливающие допустимость тела сообщения в сообщении, отличны для запросов и ответов. Присутствие тела сообщения в запросе отмечается добавлением к заголовкам запроса поля заголовка <code>Content-Length</code> или <code>Transfer-Encoding</code>. Тело сообщения может быть добавлено в запрос, только когда метод запроса допускает тело объекта. Включается или не включается тело сообщения в сообщение ответа — зависит как от метода запроса, так и от кода состояния ответа. Все ответы на запрос с методом <code>HEAD</code> не должны включать тело сообщения, даже если присутствуют поля заголовка объекта (<code>entity-header</code>), заставляющие поверить в присутствие объекта. Никакие ответы с кодами состояния <code>1xx</code> (Информационные), <code>204</code> (Нет содержимого, No Content), и <code>304</code> (Не модифицирован, Not Modified) не должны содержать тела сообщения. Все другие ответы содержат тело сообщения, даже если оно имеет нулевую длину. == Безопасность и HTTPS == ==== HTTPS: Защита передаваемых данных ==== HTTPS (Hyper Text Transfer Protocol Secure) является защищенной версией протокола HTTP, обеспечивающей шифрование данных между клиентом и сервером. Важность его использования в HTTP-соединениях заключается в следующем: *Шифрование данных: HTTPS использует шифрование для защиты передаваемой информации, что делает её невозможной для прочтения третьим лицам. *Идентификация сервера: HTTPS подтверждает, что сервер, с которым происходит обмен данными, является действительным сервером. -*Целостность данных: Проверка целостности данных гарантирует, что информация не была изменена в процессе передачи. ==== Типы атак и меры безопасности ==== Различные виды атак, такие как межсетевые атаки, переполнение буфера, междоменная подделка запроса (CSRF), инъекции и др., могут угрожать безопасности HTTP-соединений. Некоторые меры безопасности для защиты от этих атак включают: *Шифрование: Защита данных путём их кодирования, что делает их непонятными для несанкционированных лиц. *Аутентификация: Проверка подлинности пользователей или серверов для предотвращения несанкционированного доступа. *Авторизация: Управление доступом к ресурсам после успешной аутентификации. *Использование HTTPS: Миграция на HTTPS для обеспечения шифрования и безопасности данных. *Протоколы обмена ключами: Применение протоколов, таких как TLS/SSL, для установки безопасного соединения между клиентом и сервером. Все эти меры помогают обеспечить безопасность передаваемых данных и снизить риск возможных атак на HTTP-соединения.
Записать страницу Отменить