Домой Edit me on GitHub

2019-06-19

Каналы передачи данных | Сетевое программирование | Базы данных | Основы Веб-программирования

Bash

Простой GET запрос с использованием стандартного устройства /dev/tcp/$host/$port:

http_get.sh
#!/bin/bash

server="it-monolit.ru"
port=80

exec 10<>/dev/tcp/${server}/${port} #открываем соединение
echo -e "GET / HTTP/1.1\r\nhost: ${server}\r\nConnection: close\r\n\r\n" >&10 #тело запроса
cat <&10

exit $?

Ответ на наш запрос:

$ . http_get.sh

HTTP/1.1 200 OK
Server: nginx/1.10.0 (Ubuntu)
Date: Fri, 29 Sep 2017 16:19:53 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
X-Frame-Options: SAMEORIGIN
Vary: Cookie
Set-Cookie: csrftoken=Vc0kdssECaVGmduXvZ7Uu5rYzvQyIL9pqPmeGRQzkXsj8zen4a3eAkRgXXlBtCkf; expires=Fri, 28-Sep-2018 16:19:53 GMT; Max-Age=31449600; Path=/
P3P: CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"
Front-End-Https: on

1eb0

<html class="no-js" lang="ru">
    <head>
        <title> - It-monolit: компьютеры, и комплектующие.</title>
        ...
</html>

Получен код 200 OK и тело ответа, которое представляет собой страницу html.

Previous: Perl Next: Rust