SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Протокол HTTP
1
Основные сведения
 HTTP — широко распространённый протокол
передачи данных, изначально предназначенный
для передачи гипертекстовых документов.
 Протокол HTTP предполагает использование
клиент-серверной структуры передачи данных.
 Как правило, передача данных по протоколу
HTTP осуществляется через TCP/IP-соединения и
обычно использует TCP-порт 80.
2
Структура протокола
 Стартовая строка — определяет тип сообщения.
 Заголовки — характеризуют тело сообщения,
параметры передачи и прочие сведения.
 Тело сообщения — непосредственно данные
сообщения. Обязательно должно отделяться от
заголовков пустой строкой.
3
Стартовая строка запроса
 Метод
 URI
 HTTP/Версия
4
Метод
 Последовательность из любых символов, кроме
управляющих и разделителей, и определяет операцию,
которую нужно осуществить с указанным ресурсом.
 GET: получить доступ к существующему ресурсу. В URL
перечислена вся необходимая информация, чтобы сервер
смог найти и вернуть в качестве ответа искомый ресурс.
 POST: используется для создания нового ресурса. POST
запрос обычно содержит в себе всю нужную информацию
для создания нового ресурса.
 PUT: обновить текущий ресурс. PUT запрос содержит
обновляемые данные.
 DELETE: служит для удаления существующего ресурса.
5
URI
6
 Определяет путь к запрашиваемому документу.
Версия
7
 Определяет, в соответствии с какой версией
стандарта HTTP составлен запрос. Указывается
как два числа, разделённых точкой.
Заголовки запроса
 Строка в HTTP-сообщении, содержащая
разделённую двоеточием пару вида «параметр-
значение».
8
Группы заголовков
9
 General Headers — должны включаться в любое
сообщение клиента и сервера.
 Request Headers — используются только в
запросах клиента.
 Response Headers — присутствуют только в
ответах сервера.
 Entity Headers — сопровождают каждую сущность
сообщения.
Тело сообщения
10
 Сами данные, которые передаются в запросе.
 Все ответы содержат тело сообщения, возможно
нулевой длины, кроме ответов на запрос методом
HEAD и ответов с кодами статуса 1xx, 204 (No
Content), и 304 (Not Modified).
Стартовая строка ответа
11
 HTTP/Версия
 Код состояния
 Пояснение
Коды состояния
 Три цифры, которые определяют результат
совершения запроса.
 1xx: Информационные сообщения
 2xx: Сообщения об успехе
 3xx: Перенаправление
 4xx: Клиентские ошибки
 5xx: Ошибки сервера
12
Пояснение
13
 Текстовое пояснение к коду ответа,
предназначено для упрощения чтения ответа
человеком
Заголовки ответа
14
Кэширование
15
 Под клиентским кэшированием понимают
способность браузеров сохранять копии файлов
(ответов сервера), чтобы не загружать их
повторно.
HTTP заголовки для клиентского
кэширования16
 Заголовок ответа Last-modified и заголовок
запроса if-Modified-Since.
 Заголовок ответа Etag и заголовок запроса If-None-
Match.
 HTTP-заголовок Expired.
 HTTP-заголовки Cache-Control
 max-age=[секунды]
 s-maxage=[секунды]
 no-cache
 no-store
 public
 private
Советы
17
 Используйте URL-адреса последовательно.
 Используйте общую библиотеку изображений.
 Храните в кэше изображения и страницы,
которые редко изменяются.
 Дайте кэшу возможность распознавать страницы,
которые обновляются регулярно.
18
Клиент-серверная модель
взаимодействия
Основные понятия
19
 Задача клиентской-части (программы-клиента)
состоит во взаимодействии с пользователем,
передаче пользовательского запроса серверу,
получение запроса от серверной части
(программы-сервера) и представление его в
удобном для пользователя виде.
 Программа-сервер же обрабатывает запросы
клиента и выдает ответы.
Разновидности архитектуры клиент-сервер
20
 «Архитектура с толстым клиентом» - логика
представления данных и бизнес-логика
размещаются на клиенте, логикой хранения и
накопления данных на сервере.
 «Архитектура с тонким клиентом» - программа-
клиент реализует лишь графический интерфейс
пользователя и передает/принимает запросы, а
вся бизнес-логика выполняется сервером.
Взаимодействие клиента и сервера
21
 Для идентификации машины в сети используется
протокол IP и 4х байтный уникальный
идентификатор машины - ip адрес. Далее, для
идентификации приложения, TCP добавляет
понятие порта.
 В TCP пакетах указываются порт источника
(клиента) и порт назначения (сервера).
Клиент-серверные технологии
22
 Web-серверы - представляют доступ к гипертекстовым
документам по протоколу HTTP, поддерживают
расширенные возможности, в частности работу с
бинарными файлами (изображения, мультимедиа и т.п.).
 Серверы приложений - для централизованного
решения прикладных задач в некоторой предметной
области.
 Серверы баз данных - используются для обработки
пользовательских запросов на языке SQL. При этом СУБД
находится на сервере, к которому и подключаются
клиентские приложения.
 Почтовые серверы - представляют услуги по отправке
и получению электронных почтовых сообщений.
23
Servlet API
Общие сведения
24
 Сервлеты - это программы на Java, которые
работают на серверном компьютере. Их
выполнение инициируется Web-сервером или
сервером приложений по запросу клиента.
 Пакеты javax.servlet и javax.servlet.http
обеспечивают интерфейсы и классы для
создания сервлетов.
Последовательность выполнения сервлета
25
 Клиент посылает запрос Web-серверу или серверу
приложений.
 Web-сервер или сервер приложений инициирует
выполнение сервлета, передавая ему необходимые
данные.
 Сервлет выполняется (как правило, на виртуальной Java-
машине сервера), и по окончании работы передает
результаты (ответ на исходный запрос) вызвавшему его
серверу. Обмен данными между сервлетом и сервером
происходит при помощи специального Java-API (его
главные составляющие это классы HttpServletRequest для
передачи запроса и HttpServletResponse для ответа).
 Сервер отдает полученные от сервлета данные клиенту.
Жизненный цикл сервлета
26
 Загрузка класса сервлета — когда контейнер получает
запрос для сервлета, то происходит загрузка класса
сервлета в память и вызов конструктора без параметров.
 Инициализация класса сервлета — после того как
класс загружен контейнер инициализирует
объект ServletContext для этого сервлета и внедряет его
через init() метод. Это и есть место где сервлет класс
преобразуется из обычного класса в сервлет.
 Обработка запросов — после инициализации сервлет
готов к обработке запросов.
 Удаление из Service — когда контейнер
останавливается или останавливается приложение, то
контейнер сервлетов уничтожает классы сервлетов путем
вызова destroy() метода.
ServletConfig и ServletContext
27
 Интерфейс javax.servlet.ServletConfig используется для
передачи конфигурационной информации сервлету.
 Интерфейс javax.servlet.ServletContext предоставляет доступ к
параметрам веб приложения сервлету.
 ServletConfig является уникальным объектом для каждого
сервлета, в то время как ServletContext уникальный для всего
приложения.
 ServletConfig используется для предоставления параметров
инициализации сервлету, а ServletContext для предоставления
параметров инициализации приложения для всех сервлетов.
 Нет возможности устанавливать атрибуты в
объекте ServletConfig, в то время как можно установить
атрибуты в объекте ServletContext, которые будут доступны
другим сервлетам.
Отличия методов forward() и sendRedirect()
28
 RequestDispatcher forward() используется для проброски
того же самого запроса к другому ресурсу, в то время как
ServletResponse sendRedirect() возвращает ответ клиенту с
status code 302 (redirect) с ссылкой для отправки запроса.
Посылается полностью новый запрос.
 forward() обрабатывается внутри контейнера, а
sendRedirect() обрабатывается браузером.
 Необходимо использовать forward() для организации
доступа внутри одного и того же приложения, т.к. он
быстрее sendRedirect().
 В методе forward() браузер не знает о фактически
обрабатываемом ресурсе и URL в строке остается
прежним. В sendRedirect() методе URL адрес изменяется
на пробрасываемый ресурс.
29
 Спасибо за внимание!

Weitere ähnliche Inhalte

Was ist angesagt?

LDAP in infrastructure (RootConf 2009)
LDAP in infrastructure (RootConf 2009)LDAP in infrastructure (RootConf 2009)
LDAP in infrastructure (RootConf 2009)Sergey Skvortsov
 
Введение в Spring
Введение в SpringВведение в Spring
Введение в SpringUnguryan Vitaliy
 
архитектура и принципы работы типового Web приложения
архитектура и принципы работы типового Web приложенияархитектура и принципы работы типового Web приложения
архитектура и принципы работы типового Web приложенияVladyslav Leikykh
 
C++ STL & Qt. Занятие 03.
C++ STL & Qt. Занятие 03.C++ STL & Qt. Занятие 03.
C++ STL & Qt. Занятие 03.Igor Shkulipa
 
XML Native Database на примере SednaXML
XML Native Database на примере SednaXMLXML Native Database на примере SednaXML
XML Native Database на примере SednaXMLSlach
 
Web осень 2013 лекция 1
Web осень 2013 лекция 1Web осень 2013 лекция 1
Web осень 2013 лекция 1Technopark
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"Technopark
 
Web осень 2013 лекция 3
Web осень 2013 лекция 3Web осень 2013 лекция 3
Web осень 2013 лекция 3Technopark
 
Cookies, session и другое в JSP
Cookies, session и другое в JSPCookies, session и другое в JSP
Cookies, session и другое в JSPUnguryan Vitaliy
 
лабораторная работа №6
лабораторная работа №6лабораторная работа №6
лабораторная работа №6student_kai
 
Эффективное программирование на NodeJS
Эффективное программирование на NodeJSЭффективное программирование на NodeJS
Эффективное программирование на NodeJSYura Bogdanov
 
Aleksey Mashanov Rit
Aleksey  Mashanov RitAleksey  Mashanov Rit
Aleksey Mashanov Ritrit2010
 
Введение в hibernate
Введение в hibernateВведение в hibernate
Введение в hibernateUnguryan Vitaliy
 
Clojure: Lisp for the modern world (русская версия)
Clojure: Lisp for the modern world (русская версия)Clojure: Lisp for the modern world (русская версия)
Clojure: Lisp for the modern world (русская версия)Alex Ott
 
Web осень 2012 лекция 2
Web осень 2012 лекция 2Web осень 2012 лекция 2
Web осень 2012 лекция 2Technopark
 

Was ist angesagt? (20)

LDAP in infrastructure (RootConf 2009)
LDAP in infrastructure (RootConf 2009)LDAP in infrastructure (RootConf 2009)
LDAP in infrastructure (RootConf 2009)
 
Введение в Spring
Введение в SpringВведение в Spring
Введение в Spring
 
архитектура и принципы работы типового Web приложения
архитектура и принципы работы типового Web приложенияархитектура и принципы работы типового Web приложения
архитектура и принципы работы типового Web приложения
 
Instalarea DSpace
Instalarea DSpaceInstalarea DSpace
Instalarea DSpace
 
Administrarea DSpace
Administrarea DSpaceAdministrarea DSpace
Administrarea DSpace
 
Setarea DSpace
Setarea DSpaceSetarea DSpace
Setarea DSpace
 
C++ STL & Qt. Занятие 03.
C++ STL & Qt. Занятие 03.C++ STL & Qt. Занятие 03.
C++ STL & Qt. Занятие 03.
 
JDBC
JDBCJDBC
JDBC
 
XML Native Database на примере SednaXML
XML Native Database на примере SednaXMLXML Native Database на примере SednaXML
XML Native Database на примере SednaXML
 
Web осень 2013 лекция 1
Web осень 2013 лекция 1Web осень 2013 лекция 1
Web осень 2013 лекция 1
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
 
Web осень 2013 лекция 3
Web осень 2013 лекция 3Web осень 2013 лекция 3
Web осень 2013 лекция 3
 
Cookies, session и другое в JSP
Cookies, session и другое в JSPCookies, session и другое в JSP
Cookies, session и другое в JSP
 
лабораторная работа №6
лабораторная работа №6лабораторная работа №6
лабораторная работа №6
 
Эффективное программирование на NodeJS
Эффективное программирование на NodeJSЭффективное программирование на NodeJS
Эффективное программирование на NodeJS
 
Aleksey Mashanov Rit
Aleksey  Mashanov RitAleksey  Mashanov Rit
Aleksey Mashanov Rit
 
Введение в hibernate
Введение в hibernateВведение в hibernate
Введение в hibernate
 
Сервлеты
СервлетыСервлеты
Сервлеты
 
Clojure: Lisp for the modern world (русская версия)
Clojure: Lisp for the modern world (русская версия)Clojure: Lisp for the modern world (русская версия)
Clojure: Lisp for the modern world (русская версия)
 
Web осень 2012 лекция 2
Web осень 2012 лекция 2Web осень 2012 лекция 2
Web осень 2012 лекция 2
 

Ähnlich wie Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet API

JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 01.JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 01.Igor Shkulipa
 
Мировые информационные ресурсы. Лекция 3
Мировые информационные ресурсы. Лекция 3Мировые информационные ресурсы. Лекция 3
Мировые информационные ресурсы. Лекция 3Dmitriy Krukov
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 67bits
 
C# Web. Занятие 01.
C# Web. Занятие 01.C# Web. Занятие 01.
C# Web. Занятие 01.Igor Shkulipa
 
МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2Dima Dzuba
 
Стажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTPСтажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTP7bits
 
Baseof servletsjava intro
Baseof servletsjava introBaseof servletsjava intro
Baseof servletsjava introalexey1991
 
Лекция #1. Основы Web-технологий
Лекция #1. Основы Web-технологийЛекция #1. Основы Web-технологий
Лекция #1. Основы Web-технологийЯковенко Кирилл
 
Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"
Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"
Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"DataArt
 
Вячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSВячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSYandex
 
Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NETPositive Hack Days
 
Лекция Android. БД SQLite, ContentProvider, Loader
Лекция Android. БД SQLite, ContentProvider, LoaderЛекция Android. БД SQLite, ContentProvider, Loader
Лекция Android. БД SQLite, ContentProvider, LoaderАлександр Брич
 
03 web server_architecture_ru
03 web server_architecture_ru03 web server_architecture_ru
03 web server_architecture_rumcroitor
 
Лекция 1. Модель OSI.
Лекция 1. Модель OSI.Лекция 1. Модель OSI.
Лекция 1. Модель OSI.Alexey Furmanov
 
Lesson1
Lesson1Lesson1
Lesson1jinol
 
6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remoting6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remotingKewpaN
 
Java. Lecture 09. Network Programming
Java. Lecture 09. Network ProgrammingJava. Lecture 09. Network Programming
Java. Lecture 09. Network Programmingcolriot
 

Ähnlich wie Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet API (20)

JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 01.JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 01.
 
Мировые информационные ресурсы. Лекция 3
Мировые информационные ресурсы. Лекция 3Мировые информационные ресурсы. Лекция 3
Мировые информационные ресурсы. Лекция 3
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
 
C# Web. Занятие 01.
C# Web. Занятие 01.C# Web. Занятие 01.
C# Web. Занятие 01.
 
МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2
 
Стажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTPСтажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTP
 
Baseof servletsjava intro
Baseof servletsjava introBaseof servletsjava intro
Baseof servletsjava intro
 
Лекция #1. Основы Web-технологий
Лекция #1. Основы Web-технологийЛекция #1. Основы Web-технологий
Лекция #1. Основы Web-технологий
 
Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"
Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"
Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"
 
Вячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSВячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPS
 
Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NET
 
Лекция Android. БД SQLite, ContentProvider, Loader
Лекция Android. БД SQLite, ContentProvider, LoaderЛекция Android. БД SQLite, ContentProvider, Loader
Лекция Android. БД SQLite, ContentProvider, Loader
 
03 web server_architecture_ru
03 web server_architecture_ru03 web server_architecture_ru
03 web server_architecture_ru
 
Лекция 1. Модель OSI.
Лекция 1. Модель OSI.Лекция 1. Модель OSI.
Лекция 1. Модель OSI.
 
servlets.pdf
servlets.pdfservlets.pdf
servlets.pdf
 
servlets1.pdf
servlets1.pdfservlets1.pdf
servlets1.pdf
 
Lesson1
Lesson1Lesson1
Lesson1
 
6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remoting6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remoting
 
Web лекция 1
Web   лекция 1Web   лекция 1
Web лекция 1
 
Java. Lecture 09. Network Programming
Java. Lecture 09. Network ProgrammingJava. Lecture 09. Network Programming
Java. Lecture 09. Network Programming
 

Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet API

  • 2. Основные сведения  HTTP — широко распространённый протокол передачи данных, изначально предназначенный для передачи гипертекстовых документов.  Протокол HTTP предполагает использование клиент-серверной структуры передачи данных.  Как правило, передача данных по протоколу HTTP осуществляется через TCP/IP-соединения и обычно использует TCP-порт 80. 2
  • 3. Структура протокола  Стартовая строка — определяет тип сообщения.  Заголовки — характеризуют тело сообщения, параметры передачи и прочие сведения.  Тело сообщения — непосредственно данные сообщения. Обязательно должно отделяться от заголовков пустой строкой. 3
  • 4. Стартовая строка запроса  Метод  URI  HTTP/Версия 4
  • 5. Метод  Последовательность из любых символов, кроме управляющих и разделителей, и определяет операцию, которую нужно осуществить с указанным ресурсом.  GET: получить доступ к существующему ресурсу. В URL перечислена вся необходимая информация, чтобы сервер смог найти и вернуть в качестве ответа искомый ресурс.  POST: используется для создания нового ресурса. POST запрос обычно содержит в себе всю нужную информацию для создания нового ресурса.  PUT: обновить текущий ресурс. PUT запрос содержит обновляемые данные.  DELETE: служит для удаления существующего ресурса. 5
  • 6. URI 6  Определяет путь к запрашиваемому документу.
  • 7. Версия 7  Определяет, в соответствии с какой версией стандарта HTTP составлен запрос. Указывается как два числа, разделённых точкой.
  • 8. Заголовки запроса  Строка в HTTP-сообщении, содержащая разделённую двоеточием пару вида «параметр- значение». 8
  • 9. Группы заголовков 9  General Headers — должны включаться в любое сообщение клиента и сервера.  Request Headers — используются только в запросах клиента.  Response Headers — присутствуют только в ответах сервера.  Entity Headers — сопровождают каждую сущность сообщения.
  • 10. Тело сообщения 10  Сами данные, которые передаются в запросе.  Все ответы содержат тело сообщения, возможно нулевой длины, кроме ответов на запрос методом HEAD и ответов с кодами статуса 1xx, 204 (No Content), и 304 (Not Modified).
  • 11. Стартовая строка ответа 11  HTTP/Версия  Код состояния  Пояснение
  • 12. Коды состояния  Три цифры, которые определяют результат совершения запроса.  1xx: Информационные сообщения  2xx: Сообщения об успехе  3xx: Перенаправление  4xx: Клиентские ошибки  5xx: Ошибки сервера 12
  • 13. Пояснение 13  Текстовое пояснение к коду ответа, предназначено для упрощения чтения ответа человеком
  • 15. Кэширование 15  Под клиентским кэшированием понимают способность браузеров сохранять копии файлов (ответов сервера), чтобы не загружать их повторно.
  • 16. HTTP заголовки для клиентского кэширования16  Заголовок ответа Last-modified и заголовок запроса if-Modified-Since.  Заголовок ответа Etag и заголовок запроса If-None- Match.  HTTP-заголовок Expired.  HTTP-заголовки Cache-Control  max-age=[секунды]  s-maxage=[секунды]  no-cache  no-store  public  private
  • 17. Советы 17  Используйте URL-адреса последовательно.  Используйте общую библиотеку изображений.  Храните в кэше изображения и страницы, которые редко изменяются.  Дайте кэшу возможность распознавать страницы, которые обновляются регулярно.
  • 19. Основные понятия 19  Задача клиентской-части (программы-клиента) состоит во взаимодействии с пользователем, передаче пользовательского запроса серверу, получение запроса от серверной части (программы-сервера) и представление его в удобном для пользователя виде.  Программа-сервер же обрабатывает запросы клиента и выдает ответы.
  • 20. Разновидности архитектуры клиент-сервер 20  «Архитектура с толстым клиентом» - логика представления данных и бизнес-логика размещаются на клиенте, логикой хранения и накопления данных на сервере.  «Архитектура с тонким клиентом» - программа- клиент реализует лишь графический интерфейс пользователя и передает/принимает запросы, а вся бизнес-логика выполняется сервером.
  • 21. Взаимодействие клиента и сервера 21  Для идентификации машины в сети используется протокол IP и 4х байтный уникальный идентификатор машины - ip адрес. Далее, для идентификации приложения, TCP добавляет понятие порта.  В TCP пакетах указываются порт источника (клиента) и порт назначения (сервера).
  • 22. Клиент-серверные технологии 22  Web-серверы - представляют доступ к гипертекстовым документам по протоколу HTTP, поддерживают расширенные возможности, в частности работу с бинарными файлами (изображения, мультимедиа и т.п.).  Серверы приложений - для централизованного решения прикладных задач в некоторой предметной области.  Серверы баз данных - используются для обработки пользовательских запросов на языке SQL. При этом СУБД находится на сервере, к которому и подключаются клиентские приложения.  Почтовые серверы - представляют услуги по отправке и получению электронных почтовых сообщений.
  • 24. Общие сведения 24  Сервлеты - это программы на Java, которые работают на серверном компьютере. Их выполнение инициируется Web-сервером или сервером приложений по запросу клиента.  Пакеты javax.servlet и javax.servlet.http обеспечивают интерфейсы и классы для создания сервлетов.
  • 25. Последовательность выполнения сервлета 25  Клиент посылает запрос Web-серверу или серверу приложений.  Web-сервер или сервер приложений инициирует выполнение сервлета, передавая ему необходимые данные.  Сервлет выполняется (как правило, на виртуальной Java- машине сервера), и по окончании работы передает результаты (ответ на исходный запрос) вызвавшему его серверу. Обмен данными между сервлетом и сервером происходит при помощи специального Java-API (его главные составляющие это классы HttpServletRequest для передачи запроса и HttpServletResponse для ответа).  Сервер отдает полученные от сервлета данные клиенту.
  • 26. Жизненный цикл сервлета 26  Загрузка класса сервлета — когда контейнер получает запрос для сервлета, то происходит загрузка класса сервлета в память и вызов конструктора без параметров.  Инициализация класса сервлета — после того как класс загружен контейнер инициализирует объект ServletContext для этого сервлета и внедряет его через init() метод. Это и есть место где сервлет класс преобразуется из обычного класса в сервлет.  Обработка запросов — после инициализации сервлет готов к обработке запросов.  Удаление из Service — когда контейнер останавливается или останавливается приложение, то контейнер сервлетов уничтожает классы сервлетов путем вызова destroy() метода.
  • 27. ServletConfig и ServletContext 27  Интерфейс javax.servlet.ServletConfig используется для передачи конфигурационной информации сервлету.  Интерфейс javax.servlet.ServletContext предоставляет доступ к параметрам веб приложения сервлету.  ServletConfig является уникальным объектом для каждого сервлета, в то время как ServletContext уникальный для всего приложения.  ServletConfig используется для предоставления параметров инициализации сервлету, а ServletContext для предоставления параметров инициализации приложения для всех сервлетов.  Нет возможности устанавливать атрибуты в объекте ServletConfig, в то время как можно установить атрибуты в объекте ServletContext, которые будут доступны другим сервлетам.
  • 28. Отличия методов forward() и sendRedirect() 28  RequestDispatcher forward() используется для проброски того же самого запроса к другому ресурсу, в то время как ServletResponse sendRedirect() возвращает ответ клиенту с status code 302 (redirect) с ссылкой для отправки запроса. Посылается полностью новый запрос.  forward() обрабатывается внутри контейнера, а sendRedirect() обрабатывается браузером.  Необходимо использовать forward() для организации доступа внутри одного и того же приложения, т.к. он быстрее sendRedirect().  В методе forward() браузер не знает о фактически обрабатываемом ресурсе и URL в строке остается прежним. В sendRedirect() методе URL адрес изменяется на пробрасываемый ресурс.
  • 29. 29  Спасибо за внимание!