Примеры расшифровки возвращаемых кодов



Код статуса Описание
200 OK –«хорошо».
201 Create – «создано».
202 Accepted – «принято».
204 Nocontent – «нет содержимого».
302 Found – «найдено».
400 Badrequest –«плохой, неверный запрос».
401 Unauthorized – «неавторизован».
404 Notfound – «не найдено».
405 Methodnotallowed – «метод не поддерживается».
500 Internalservererror – «внутренняяошибкасервера».
505 HTTP version is not supported –«версия HTTP неподдерживается».

Виды заголовков

Заголовки запроса:

1) Заголовок Accept.

 

Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,

text/plain;q=0.8, video/x-mng,image/png,image/jpeg,image/gif;q=0.2,

text/css,*/*;q=0.1

*/* - всеостальныеформаты, крометех, чтобылиописаныранее.

Q – quality – коэффициент, с которым клиент желал бы получить контент. Чем выше коэффициент, тем предпочтительнее получение контента в этом формате.

2) Accept-Charset. Предоставляет возможность указать кодировку, в которой клиент желает получить данные;

3) Accept-Encoding. Кодировка данных (например, использование алгоритма компрессии zip);

4) Accept-Language. Воспринимаемые языки;

5) Заголовки авторизации;

6) Cookie. Способ предоставить серверу возможность определить некоторое состояние, специфичное для данного клиента. Состояние хранится у клиента;

7) Host. Позволяет указать, к какому хосту идет обращение (указать имя хоста);

8) If-Match. «Еслисовпадает»;

9) If-modified-since. «Еслиизменилсяскакого-товремени».

10) If-non-match. «Еслинесовпадает».

If-Match, If-modified-since, If-non-matchпозволяют наложитьусловиянапоказресурса. Например, если указан признак, что какой-то тег не должен измениться, то его значение просто возвращается.

11) Range. Позволяет указать диапазон сайтов или фрагмент ресурса, который необходимо прочитать, т.е. клиент получает возможность кусками за несколько запросов вычитывать ресурс.

Range: 0-499 

Range: bytes 0-499, 1000-1499

 

 

Заголовок set-cookie

 

               Установка cookie. Строка, в которой через точку с запятой задаются параметры. 

Set-Cookie: fname=chris; domain=.httphandbook.org; path=/; expires=Tue, 21 May 2002 12:34:56 GMT; secure

Виды соединений

HTTP имеет средство оптимизации трафика и ускорения взаимодействия клиента с сервером за счет исключения избыточных действий.

С сервером по HTTP может устанавливаться:

1)отдельное соединение;

2)постоянное соединение («Keep alive connection»).

Ресурсы сами могут ссылаться на другие ресурсы (картинки) – нужно загрузить все ресурсы. Как можно это сделать?

А) установка параллельных соединений. При использовании этого варианта загрузка ресурсов ускоряется, но нагрузка на сервер увеличивается, т.к. сервер должен обеспечивать поддержку большего количества одновременно установленных соединений (каждое соединениетребует периодического измерения размера TCP-окна, отсылку подтверждений на последний принятый пакет и т.д.).

Б) постоянное соединение («Keep alive connection»). В версии HTTP 1.0 по умолчанию подразумевалось параллельно открытое соединение, в версии HTTP 1.1 по умолчанию устанавливается постоянно открытое соединение, т.е. если соединение устанавливается, то оно не закрывается и запросы на получение ресурса идут через одно и то же открытое соединение.

3) Соединение в режиме трубы (системы массового обслуживания, СМО). В этом режиме по установленным и поддерживаемым постоянно соединениям следующий запрос может быть отправлен, даже если ответ на предыдущий запрос еще не получен.

Т.е. запросы посылаются не в режиме запрос-ответ-запрос-ответ, а в режиме запрос-запрос-запрос, ответ-ответ-ответ. Это позволяет более эффективно использовать трафик. Но этот режим является сложным, т.к. порядок прихода ответов должен совпадать с порядком отправления запросов (в ответе отсутствуют методы для идентификации запроса).

При использовании режимов постоянного соединения или СМО важно использование таких заголовков, как content length и content type.

HTTP/1.1 200 OK Date: Tue, 21 May 2002 12:34:56 GMT Content-Type: text/html Content-Length: 102                Content-length показывает размер содержимого в байтах и позволяет корректно читать данные. Без этого размера использовать СМО или постоянное соединение невозможно, т.к. необходимо знать правильное количество данных ответа.                Заголовкиответаcontent-typeиcontent-lengthчасто являются обязательными, если используется постоянно открытое соединение. Такой подход может порождать дедлок браузера не по вине браузера.

Когда клиенты, у которых есть только локальные IP-адреса, обращаются к серверу через NATпо установленным и поддерживаемым постоянно соединениям, они получают один и тот же глобальный IP-адрес (отличается только номер порта).

На сервере часто работает программное обеспечение, которое ограничивает количество запросов, зная, что браузеры в большинстве своем работают в режиме keepalive (постоянно открытое соединение). Например, может стоять ограничение на установку не более 2х соединений с одного IP-адреса. Если приходит очередной запрос на установку соединения, то при большой нагрузке на сервер может возникать следующая ситуация: запрос попадает в очередь, отправляется подтверждение (флаг ACK), но Acceptне делается. Получается, что каждое новое соединение, которое приходит от клиента, устанавливается в очередь в надежде, что сейчас будет закрыто предыдущее соединение.

Аутентификация и авторизация

 

Общиесведения

 

Аутентификация – это определение лица, которое запрашивает доступ иподтверждение личности этого лица (проверка и удостоверение).

Авторизация– это предоставление прав на доступ к некоторому ресурсу на основе аутентификации.

Указание имени пользователя и пароля – аутентификация.

Наделение пользователя, прошедшего аутентификацию, правами на доступ к некоторому ресурсу – авторизация.

 

Для обеспечения авторизации вводится понятие защищаемой области или области безопасности, которая относятся к некоторым ресурсам или маршрутам. С помощью таких областей унифицируется доступ к маршрутам – если к некоторому маршруту есть доступ, то и ко всем его подмаршрутам также имеетсядоступ.

 

Аутентификация– это проверка личности пользователя, а авторизация – предоставление ему прав.

 

 

Виды аутентификации

 

 

Эти виды аутентификации отличаются степенью безопасности.

 

Базовая аутентификация

 

Пользователь в открытом виде указывает имя и пароль, закодированные с помощью base64 (имя и пароль через двоеточие представляются в этой кодировке).

 

1) GET / HTTP/1.1

   Host: httphandbook.org 2) HTTP/1.1 401 Unauthorized    WWW-Authenticate: Basic realm="HTTP Developer's Handbook" 3) GET / HTTP/1.1

   Host: httphandbook.org

   Authorization: Basic bXluYW1lOm15cGFzcw==

 

Очевидно, что явное указание имени пользователя и пароля абсолютно небезопасно.


Дата добавления: 2018-08-06; просмотров: 274; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!