Last active
April 4, 2020 02:30
-
-
Save georgiybykov/bebc673c2ff20d3086bd892c6b7a48e6 to your computer and use it in GitHub Desktop.
Задание к уроку "Архитектура клиент-сервер и HTTP-протокол"
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1. Сформированные HTTP-запросы и полученные HTTP-ответы (URL: http://httpbin.org/anything): | |
> ncat -C httpbin.org 80 | |
GET /anything HTTP/1.1 | |
Host: httpbin.org | |
HTTP/1.1 200 OK | |
Date: Fri, 03 Apr 2020 18:36:02 GMT | |
Content-Type: application/json | |
Content-Length: 287 | |
Connection: keep-alive | |
Server: gunicorn/19.9.0 | |
Access-Control-Allow-Origin: * | |
Access-Control-Allow-Credentials: true | |
{ | |
"args": {}, | |
"data": "", | |
"files": {}, | |
"form": {}, | |
"headers": { | |
"Host": "httpbin.org", | |
"X-Amzn-Trace-Id": "Root=1-5e878212-cf140a1034ffbb1fabc8812d" | |
}, | |
"json": null, | |
"method": "GET", | |
"origin": "188.162.65.222", | |
"url": "http://httpbin.org/anything" | |
} | |
> ncat -C httpbin.org 80 | |
GET /anything?first=1 HTTP/1.1 | |
Host: httpbin.org | |
HTTP/1.1 200 OK | |
Date: Fri, 03 Apr 2020 18:38:47 GMT | |
Content-Type: application/json | |
Content-Length: 315 | |
Connection: keep-alive | |
Server: gunicorn/19.9.0 | |
Access-Control-Allow-Origin: * | |
Access-Control-Allow-Credentials: true | |
{ | |
"args": { | |
"first": "1" | |
}, | |
"data": "", | |
"files": {}, | |
"form": {}, | |
"headers": { | |
"Host": "httpbin.org", | |
"X-Amzn-Trace-Id": "Root=1-5e8782b7-7731a3df3f39fe4eadacc8db" | |
}, | |
"json": null, | |
"method": "GET", | |
"origin": "188.162.65.222", | |
"url": "http://httpbin.org/anything?first=1" | |
} | |
> ncat -C httpbin.org 80 | |
POST /anything HTTP/1.1 | |
Host: httpbin.org | |
Content-Length: 15 | |
key1=value1&key2=value2 | |
HTTP/1.1 200 OK | |
Date: Fri, 03 Apr 2020 18:41:23 GMT | |
Content-Type: application/json | |
Content-Length: 332 | |
Connection: keep-alive | |
Server: gunicorn/19.9.0 | |
Access-Control-Allow-Origin: * | |
Access-Control-Allow-Credentials: true | |
{ | |
"args": {}, | |
"data": "key1=value1&key", | |
"files": {}, | |
"form": {}, | |
"headers": { | |
"Content-Length": "15", | |
"Host": "httpbin.org", | |
"X-Amzn-Trace-Id": "Root=1-5e878327-bc986721cff7b71dd2073cd4" | |
}, | |
"json": null, | |
"method": "POST", | |
"origin": "188.162.65.222", | |
"url": "http://httpbin.org/anything" | |
} | |
HTTP/1.1 400 Bad Request | |
Server: awselb/2.0 | |
Date: Fri, 03 Apr 2020 18:41:23 GMT | |
Content-Type: text/html | |
Content-Length: 138 | |
Connection: close | |
<html> | |
<head><title>400 Bad Request</title></head> | |
<body bgcolor="white"> | |
<center><h1>400 Bad Request</h1></center> | |
</body> | |
</html> | |
> ncat -C httpbin.org 80 | |
OPTIONS /anything HTTP/1.1 | |
Host: httpbin.org | |
HTTP/1.1 200 OK | |
Date: Fri, 03 Apr 2020 23:43:55 GMT | |
Content-Type: text/html; charset=utf-8 | |
Content-Length: 0 | |
Connection: keep-alive | |
Server: gunicorn/19.9.0 | |
Allow: DELETE, HEAD, GET, PATCH, POST, PUT, TRACE, OPTIONS | |
Access-Control-Allow-Origin: * | |
Access-Control-Allow-Credentials: true | |
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, PATCH, OPTIONS | |
Access-Control-Max-Age: 3600 | |
2. HTTP-методы для создания/получения/обновления/удаления ресурса: | |
POST -> создание ресурса; | |
GET/HEAD -> получить ресурс с сервера с телом ответа / ~ без тела ответа | |
PUT/PATCH -> обновить данные ресурса целиком / ~ только фрагменты данных | |
DELETE -> удалить ресурс | |
OPTIONS -> получить информацию о доступных действиях с ресурсом | |
CONNECT -> устанавливает "туннель" к серверу, определённому по ресурсу | |
(преобразование HTTP соединения в прозрачный TCP/IP туннель) | |
TRACE -> выполняет вызов возвращаемого тестового сообщения с ресурса | |
(применяется для диагностики и позволяет видеть клиенту,что происходит | |
в каждом звене цепочки между клиентом и конечным получателем) | |
3. Объясните в ответе на задание, что делают данные заголовки: | |
Accept -> Список допустимых форматов ресурса (запрос) | |
Connection -> Сведения о проведении соединения (запрос и ответ) | |
Content-Type -> Формат и способ представления сущности (запрос и ответ) | |
User-Agent -> Список названий и версий клиента и его компонентов с комментариями (запрос) | |
Content-Length -> Размер содержимого сущности в байтах (запрос и ответ) | |
Cache-Control -> Основные директивы для управления кэшированием (запрос и ответ) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment