lect_13.ppt
- Количество слайдов: 38
Обмен информацией по протоколу HTTP Лямин Андрей Владимирович
Протокол HTTP Запрос Ответ КЛИЕНТ СЕРВЕР
Нормативные документы • RFC 1945 • RFC 2016 • RFC 2068 • RFC (Request for Comments) – заявка на обсуждение
Сеанс взаимодействия • • • Установление TCP-соединения Начало сеанса Запрос клиента Ответ сервера … Запрос клиента Ответ сервера Завершение сеанса Разрыв TCP-соединения
Структура запроса • • Строка состояния Поля заголовка Пустая строка Тело запроса
Строка состояния • {Метод запроса} • {URL ресурса} • {версия протокола HTTP}
Метод и URL ресурса • • • GET POST HEAD PUT DELETE
Версия протокола • HTTP/1. 0 • HTTP/1. 1
Поля заголовков • • • Host – Имя или IP-адрес узла. Referer – URL документа, который ссылается на ресурс. From – Адрес электронной почты пользователя. Accept – MIME-типы данных, обрабатываемых клиентом. Accept-Language – Набор двухсимвольных идентификаторов языков, поддерживаемых клиентом. Accept-Charset – Перечень поддерживаемых наборов символов. Content-Type – MIME-тип данных, содержащихся в запросе. Content-Length – Число символов содержащихся в запросе. Range – Присутствует, если клиент запрашивает часть документа Connection – Используется для управления TCP-соединением. Может иметь значения: Close или Keep-Alive. User-Agent – Информация о клиенте
HTTP-запрос GET /index. html HTTP/1. О Connection: Keep-Alive User-Agent: Mozilla/4. 05 (Win. NT; 1) Host: home. ifmo. ru
Структура ответа • • Строка состояния Поля заголовка Пустая строка Тело ответа
Строка состояния • {Версия протокола HTTP} • {Код ответа} • {Пояснительное сообщение} • HTTP/1. 0 200 OK
Коды ответов сервера • • • 100 -199: Информационный 200 -299: Запрос клиента успешен 300 -399: Запрос клиента переадресован 400 -499: Запрос клиента является неполным 500 -599: Ошибки сервера
Поля заголовков • • • Server – Имя и номер версии сервера. Age – Время в секундах с момента создания ресурса Allow – Список методов допустимых для данного сервера. Content-Language – Набор двухсимвольных идентификаторов языков, которые должен поддерживать клиент. Content-Type – MIME-тип данных, содержащихся в ответе. Content-Length – Число символов содержащихся в ответе. Last-Modified – Дата и время последнего изменения ресурса. Date – Дата и время генерации ответа. Expires – Дата и время, определяющие момент, после которого информация, переданная клиенту, считается устаревшей. Location – При перенаправлении запроса в нем указывается URL ресурса. Cache-Control – Директивы управления кэшированием. Например, nocache означает, что данные не должны кэшироваться.
HTTP-ответ HTTP/1. 0 200 Document follows Date: Fri, 20 Jan 1998 08: 17: 58 GMT Server: Apache/1. 2. 6 Last-modified: Mon, 20 Jun 1997 21: 53: 08 GMT Content-type: text/html Content-length: 2482
Передача информации на сервер • Метод GET • Метод POST
Пример передачи информации GET /scr. asp? month=august&date=24 HTTP/1. О Connection: Keep-Alive User-Agent: Mozilla/4. 05 (Win. NT; 1) Host: home. ifmo. ru
Пример передачи информации POST /scr. asp HTTP/1. О Connection: Keep-Alive User-Agent: Mozilla/4. 05 (Win. NT; 1) Host: home. ifmo. ru Content-type: application/x-www-form-ur. lencoded Content-Length: 20 month=august&date=24
MIME-тип • MIME (Multipurpose Internet Mail Extensions – многоцелевые расширения почты интернета) – стандарт, описывающий передачу различных типов данных. • Нормативные документы: – RFC 2045 -2049.
Примеры MIME-типов • • • • application/mspowerpoint application/msword application/pdf application/rtf application/zip audio/mpeg audio/x-wav image/gif image/jpeg text/html text/plain video/mpeg video/avi
Cookie • Set-Cookie: Имя. Переменной=Значение; expires=Дата; path=Путь; domain=Имя. Домена; secure • expires – определяет время, по истечении которого информация теряет свою актуальность. • domain – определяет домен, с которым связываются данные. • path – определяет путь на сервере, с которым связываются данные. • secure – указывает на необходимость передачи данных по защищенному каналу.
Примеры cookie • Set-Cookie: Name=Mike; expires=Sunday, 6 May 2007 21: 01: 55 GMT; path=/; domain=de. ifmo. ru • Set-Cookie: Session=ON; expires=Monday, 14 May 2007 15: 43 GMT; path=/main; domain=www. sun. com • Set-Cookie: Name=Peter; expires=Friday, 11 May 2007 07: 32: 21 GMT; path=/main/first; domain=www. sun. com • http: //de. ifmo. ru/index. php – Cookie: Name=Mike • http: //www. sun. com/main/first/index. html – Cookie: Session=ON; Name=Peter
HTML-определение формы <form name="form 01" method="get" action="index. php"> Логин: <input type="text" name="login" value=""> Пароль: <input type="password" name="password" value=""> Роль: <select name="status"> <option value="auto"></option> <option value="guest">Гость</option> <option value="owner">Хозяин</option> </select> <input type="submit" name="get. Logon. Window" value=" ОК "> <input type="submit" name="get. Start. Window" value="Назад"> </form>
Вид в окне обозревателя
Элементы HTML-форм • • • Поля ввода Переключатели Флажки Текстовые области Раскрывающиеся списки Кнопки
Текстовые поля <form> First Name: <input type="text" name="firstname"> <br/> Last Name: <input type= "password" name="lastname"> </form>
Текстовые поля в обозревателе
Переключатели <form> <input type="radio" name="sex" value="male">Male <br/> <input type="radio" name="sex" value="female">Female </form>
Переключатели в обозревателе
Флажки <form> <input type="checkbox" name="bike“ checked> I have a bike<br/> <input type="checkbox" name="car"> I have a car </form>
Флажки в обозревателе
Текстовая область <form> <textarea name="thetext" rows="5" cols="40"> Первая строка исходного текста. Вторая строка исходного текста. </textarea> </form>
Текстовая область в обозревателе
Список <form> <select name="status"> <option value="auto"></option> <option value="guest">Гость</option> <option value="owner">Хозяин</option> </select> </form>
Список в обозревателе
Кнопки и невидимые элементы <form> <input type="button" value="simple. Button"/><br/> <input type="reset" value="reset. Form. Data. Button"/><br/> <input type="submit" value="send. Form. Data"/> <input type="hidden" name="hidden. Input" value="secret data"/> </form>
Кнопки и невидимые элементы в обозревателе
Основные атрибуты формы <form method = ”(GET | POST)” action = ”URL” name = ”CDATA” > </form>
lect_13.ppt