Компьютерные сети 2020: протоколы прикладного уровня
2. Протоколы прикладного уровня
С помощью утилиты командной строки netcat (nc) или openssl s_client (для защищенного соединения),
и, при необходимости, других средств командной оболочки или языков программирования
(произвольные) реализовать простой обмен сообщениями протокола прикладного уровня из списка ниже:
- HTTP/1.0
- HTTP/1.1
- HTTP/2 (SPDY)
- HTTPS
- SMTP
- FTP
- DNS
Примеры
> echo -e "HEAD / HTTP/1.0\r\nHost: kurs.cs.petrsu.ru\r\n" | nc -v kurs.cs.petrsu.ru 80
Connection to kurs.cs.petrsu.ru 80 port [tcp/http] succeeded!
HTTP/1.1 301 Moved Permanently
Server: nginx/1.15.4
Date: Wed, 27 Feb 2020 07:46:52 GMT
Content-Type: text/html
Content-Length: 169
Connection: close
Location: https://kurs.cs.petrsu.ru/
> echo -e "HEAD / HTTP/1.0\r\nHost: kurs.cs.petrsu.ru\r\n" | openssl s_client -quiet -connect kurs.cs.petrsu.ru:443
depth=1 CN = cs.karelia.ru, C = RU, ST = Karelia, L = Petrozavodsk, O = Petrozavodsk State University, OU = Computer Science Department, emailAddress = vadim@cs.karelia.ru
verify return:1
depth=0 C = RU, ST = Karelia, O = Petrozavodsk State University, OU = Computer Science Department, CN = web.cs.karelia.ru, emailAddress = postmaster@cs.karelia.ru
verify return:1
HTTP/1.1 200
Server: nginx/1.15.4
Date: Wed, 27 Feb 2020 07:45:27 GMT
Content-Type: text/html;charset=utf-8
Connection: close
> ./dns.sh | hexdump -C
00000000 ab cd 01 00 00 01 00 00 00 00 00 00 07 65 78 61 |.............exa|
00000010 6d 70 6c 65 03 63 6f 6d 00 00 01 00 01 |mple.com.....|
0000001d
> ./dns.sh | ./udp1-stdin.py 192.168.112.1 53 | hexdump -C
00000000 ab cd 81 80 00 01 00 01 00 02 00 00 07 65 78 61 |.............exa|
00000010 6d 70 6c 65 03 63 6f 6d 00 00 01 00 01 c0 0c 00 |mple.com........|
00000020 01 00 01 00 01 40 ea 00 04 5d b8 d8 22 c0 0c 00 |.....@...].."...|
00000030 02 00 01 00 00 4a cc 00 14 01 61 0c 69 61 6e 61 |.....J....a.iana|
00000040 2d 73 65 72 76 65 72 73 03 6e 65 74 00 c0 0c 00 |-servers.net....|
00000050 02 00 01 00 00 4a cc 00 04 01 62 c0 3b |.....J....b.;|
0000005d
Исходные тексты для примера выше: