- •Интернет-программирование
- •ИП. Сетевые протоколы (СП)
- •ИП. СП. Уровни протоколов
- •ИП. Сетевые протоколы
- •ИП. Сетевые протоколы в Интернет
- •ИП. СП. Архитектуры
- •ИП. СП. HTTP
- •ИП. СП. HTTP. Структура протокола
- •ИП. СП. HTTP. Примеры протокола
- •ИП. СП. HTTP. Примеры протокола
- •ИП. СП. HTTP. Методы протокола
- •ИП. СП. HTTP. Классы кодов ответа
- •ИП. СП. HTTP. Коды ответа сервера. Процесс обработки
- •ИП. СП. HTTP. Коды ответа сервера. Успешность обработки
- •ИП. СП. HTTP. Коды ответов сервера. Перенаправление
- •ИП. СП. HTTP. Коды ответов сервера. Ошибки клиента
- •ИП. СП. HTTP. Коды ответов сервера. Ошибки сервера
- •ИП. СП. Недостатки URL и URI
- •ИП. СП. HTTP и FTP
- •ИП. СП. HTTP и FTP
- •ИП. СП. FTP. Режимы работы
- •ИП. СП. FTP. Режимы работы
- •ИП. СП. FTP. Структура данных
- •ИП. СП. FTP. Режимы передачи
- •ИП. СП. Защищенные протоколы
- •ИП. СП. Защищенные протоколы. HTTPS
- •ИП. СП. Защищенные протоколы. FTPS
- •ИП. СП. Защищенные протоколы. SFTP
- •ИП. СП. Защищенные протоколы. SSH
- •ИП. СП. Почтовые протоколы
- •ИП. СП. SMTP
- •ИП. СП. IMAP
- •ИП. СП. Сравнение PO3 и IMAP
ИП. СП. HTTP. Методы протокола |
МИЭТ, 2017 |
|
|
Запрос: |
|
|
GET http://www.miet.ru HTTP/1.0<cr><lf> |
|
GET |
запрос содержимого ресурса (возможно, с параметрами) |
|
HEAD |
получение заголовков (тело - отсутствует) |
|
POST |
передает серверу данные (параметры в теле) |
|
PUT |
загружает ресурс на сервер |
|
DELETE |
удаляет ресурс |
|
TRACE |
Возвращает полученный запрос так, что клиент может увидеть, |
|
|
какую информацию промежуточные серверы добавляют или |
|
|
изменяют в запрос |
|
CONNECT |
Преобразует соединение запроса в прозрачный TCP/IP-туннель, |
|
|
обычно чтобы содействовать установлению защищённого SSL- |
|
|
соединения через нешифрованный прокси |
|
OPTIONS |
Используется для определения возможностей веб-сервера или |
|
|
параметров соединения для конкретного ресурса. В ответ |
|
серверу следует включить заголовок Allow со списком поддерживаемых методов. Также в заголовке ответа может включаться информация о поддерживаемых расширениях
ИП. СП. HTTP. Классы кодов ответа |
МИЭТ, 2017 |
Ответ:
HTTP/1.0 xxx X-x<cr><lf>
1xx — Informational (информирование о процессе передачи) 2xx — Success (успешность)
3xx — Redirectional (перенаправление)
4xx — Client error (ошибка запроса клиента) 5xx — Server error (ошибка сервера)
ИП. СП. HTTP. Коды ответа сервера. Процесс обработки |
МИЭТ, 2017 |
Ответ:
HTTP/1.0 1xx X-x<cr><lf>
Информационные коды ответа:
100 Continue |
— продолжай |
|
101 |
Switching protocols |
— переключение протоколов |
102 |
Processing |
— идет обработка |
ИП. СП. HTTP. Коды ответа сервера. Успешность обработки |
МИЭТ, 2017 |
Ответ: HTTP/1.0 2xx X-x<cr><lf>
200 OK — успешно (хорошо)
201 Created — создан новый ресурс по новому адресу (см. в Location)
202 Accepted — принято в работу, но она не завершена (и можно не ждать) 203 Non-Authoritative Information — информация взята из резервной копии 204 No content — нет содержимого (тела ответа)
205 Reset Content — перепошлите запрос
206 Partial Content — частичное содержимое в ответ на частичный GET-запрос*
207 Multi-Status — сервер передаёт результаты выполнения сразу нескольких независимых операций. Они помещаются в само тело сообщения в виде XML- документа с объектом multistatus
* частичный GET-запрос идет с указанием байтового диапазона в заголовке c именем Range после которого указывается кусок байтов какой длины нужно получить с сервера
ИП. СП. HTTP. Коды ответов сервера. Перенаправление |
МИЭТ, 2017 |
Ответ: HTTP/1.0 3хx X-x<cr><lf>
300 Multiple Choices — по указанному URI существует несколько вариантов предоставления ресурса по типу MIME, по языку
301 Moved Permanently — запрошенный документ был окончательно перенесен на новый URI, указанный в поле Location заголовка
302 Found | Moved Temporarily — запрошенный документ временно доступен по другому URI, указанному в заголовке в поле Location
303 See Other — документ по запрошенному URI нужно запросить по адресу в поле Location заголовка с использованием метода GET несмотря даже на то, что первый запрашивался иным методом.
304 Not Modified — сервер возвращает такой код, если клиент запросил документ методом GET, использовал заголовок If-Modified-Since или If-None-Match и документ не изменился с указанного момента.
305 Use Proxy — запрос к запрашиваемому ресурсу должен осуществляться через прокси-сервер, URI которого указан в поле Location заголовка.
306 — не используется
307 Temporary Redirect — запрашиваемый ресурс на короткое время доступен по другому URI, указанный в поле Location заголовка.
ИП. СП. HTTP. Коды ответов сервера. Ошибки клиента |
МИЭТ, 2017 |
Ответ: HTTP/1.0 4xx X-x<cr><lf>
400 Bad Request — синтаксическая ошибка в запросе клиента
401 Unauthorized — для доступа к ресурсу требуется авторизация. В заголовке ответа должно быть поле WWW-Authenticate с перечнем условий аутентификации. Можно запрос, включив в заголовок поле Authorization с требуемыми данными
402 Payment Required — доступ к ресурсу – платный. Пока не используется (резерв)
403 Forbidden — доступ – запрещен.
404 Not Found — запрашиваемый ресурс не найден.
405 Method Not Allowed — метод не позволен (например, DELETE)
415 Unsupported Media Type — сервер отказывается работать с указанным типом данных при данном методе
429 Too Many Requests — клиент попытался отправить слишком много запросов за короткое время, что может указывать, например, на попытку DdoS-атаки
451 Unavailable For Legal Reasons — доступ закрыт по юридическим причинам
ИП. СП. HTTP. Коды ответов сервера. Ошибки сервера |
МИЭТ, 2017 |
Ответ: HTTP/1.0 5хx X-x<cr><lf>
500 Internal Server Error — любая из не классифицированных ниже ошибок
501 Not Implemented — нет возможностей для обработки запроса
502 Bad Gateway — сервер, выступая в роли шлюза или прокси-сервера, получил недействительное ответное сообщение от вышестоящего сервера
503 Service Unavailable — сервер временно не имеет возможности обрабатывать запросы по техническим причинам (в поле Retry-After может быть записано ожидаемое время включения)
504 Gateway Timeout — сервер в роли шлюза или прокси-сервера не дождался ответа от вышестоящего сервера для завершения текущего запроса
505 HTTP Version Not Supported — сервер не поддерживает указанную версию протокола HTTP
ИП. СП. URI |
МИЭТ, 2017 |
URI — Universal Resource Identifier. Универсальный идентификатор ресурса
Структура URI:
<схема>:<идентификатор-в-зависимости-от-схемы>
Схемы:
http: ldap: tel:
ftp: mailto: telnet:
file: news: jar:
ИП. СП. URL |
МИЭТ, 2017 |
URL — Uniform Resource Locator Обобщенный адрес ресура
Структура URL: <схема>://<логин>:<пароль>@<хост>:<порт>/<URL-путь>
Пример:
ftp://guest:12345@ftp.swamp.ru:21/pub/
ИП. СП. Недостатки URL и URI |
МИЭТ, 2017 |
Главный недостаток — отсутствие поддержки Unicode
Кодирование не ASCII символов в URI/URL:
Преобразовать не ASCII символы в UTF-8
Заменить полученные байты в последовательноть %<hex-код>
Пример:
http://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B3%D0%BB %D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_ %D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0
ИП. СП. FTP |
МИЭТ, 2017 |
Протокол FTP (File Transfer Protocol) — протокол прикладного уровня для обмена
файлами, построенный по технологии
клиент-сервер.
1971 — RFC959: текстовый(управление)+байтовый(передача данных)
1998 — поддержка IPV6
