HTTP Flashcards

1
Q

Что такое HTTP?

A

HTTP - это протокол передачи гипертекста (HyperText Transfer Protocol).
Протокол, обмен данными по которому происходит в формате запрос-ответ.
Для идентификации ресурсов используется идентификатор URI (Unified Resource Identifier) в заголовке запроса.
Для указания параметров ответа возможно использование заголовков.
HTTP не сохраняет состояния. Такое сохранение состояний должно реализовываться на клиентской или серверной стороне, например, с помощью заголовка SetCookie.
HTTP устанавливает TCP-соединение на каждый запрос.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Какова структура HTTP?

A

Запрос состоит из стартовой строки, заголовков и тела сообщения.
Стартовая строка: <метод> <URI> HTTP/<версия>. Например, GET /wiki/page/1 HTTP/1.1
Ответ: HTTP/<версия> <код> <пояснение>. Например, HTTP/1.1 200 OK.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Какие известны методы HTTP?

Какие заголовки можно использовать для обхода кешированного ответа?

A

В случае применения неизвестного сервером метода, его ответ будет содержать строку 501 Not Implemented.
В случае отсутствия обработчика метода на сервере, его ответ будет содержать строку 405 Method Not.
Общепринятые методы:
1. OPTIONS применяется для определения возможностей сервиса. В ответе должны прийти заголовки Allow и Access-Control-Allow-, которые позволят определить доступность ресурса для методов, хедеров, источников и временных рамок. Тело запроса отсутствует. Ответ не кешируется.
2. GET применяется для запроса содержимого ресурса. Параметры принято передавать через ?param=value. Отсутствует тело запроса. Ответ является идемпоентным, возможно кешировать.
3. HEAD применяется для определения заголовков ресурса перед запросом GET, например, в случае получения большого объема данных.
4. POST применяется для передачи даных в теле запроса. Ответ содержит строку 200 OK или 201 Created в результате обработки. Ответ не кешируется.
5. PUT применяется для загрузки содержимого в теле запроса на ресурс. Ответ не кешируется.
6. PATCH применяется для изменения фрагмента ресурса.
7. DELETE применяется для удаления ресурса.
8. TRACE применяется для отслеживания изменений запроса через Proxy.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Какие известны коды состояния HTTP?

A

Коды состояния можно поделить на группы:
1xx - информационные
2xx - успешная операция
3xx - перенаправление
4xx - ошибка на клиенте
~~~
400 Bad Request
401 Unauthorized
404 Forbidden
404 Not Found
405 Method Not Allowed
408 Request Timeout
~~~
5xx - ошибка на сервере
~~~
500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
~~~

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Что такое заголовки HTTP?

A

Заголовки являются частью запроса и несут служебную информацию, а также данные, необходимые для обработки запроса и формирования правильного ответа сервером.
Например:
~~~
Server: Apache/2.2.11 (Win32) PHP/5.3.0
Last-Modified: Sat, 16 Jan 2010 21:16:42 GMT
Content-Type: text/plain; charset=windows-1251
Content-Language: ru
~~~

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Какие известны группы заголовков HTTP?

A

Заголовки делятся на 4 группы:
1. Основные. Например, Cache-Control.
2. Заголовки запроса. Например. Accept, Referer, User-Agent.
3. Заголовки ответа. Например: Age, ETag, Location.
4. Сущность. Например: Allow, Content-Language, Expires.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Что такое тело запроса?

A

Тело запроса содержит информацию для обработки сервисом или сущность для сохранения.
Тело должно соответствовать заголовкам Content-Type и Content-Length.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Как работает отправка и получение множественных данных?

Как происходит возобновление загрузки?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly