Из Википедии:
Конвейерная передача HTTP - это метод, при котором несколько HTTP-запросов отправляются по одному соединению TCP (протокол управления передачей) без ожидания соответствующих ответов.
Чтобы отправить несколько запросов GET с помощью netcat, что-то вроде этого должно сработать:
echo -en "GET /index.html HTTP/1.1\r\nHost: example.com\r\n\r\nGET /other.html HTTP/1.1\r\nHost: example.com\r\n\r\n" | nc example.com 80
Это отправит два запроса HTTP GET на example.com, один для http://example.com/index.html и другое для http://example.com/other.html.
Флаг -e означает интерпретацию escape-последовательностей (возврат каретки и перевод строки, или \ r и \ n). «-N» означает, что в конце не печатать символ новой строки (возможно, он будет работать без «-n»).
Я только что выполнил указанную выше команду и получил два ответа: один был 200 OK, другой был 404. Not Found.
Возможно, было бы легче увидеть несколько запросов и ответов, если вы выполняете запрос HEAD вместо запроса GET. Таким образом, сервер example.com будет отвечать только заголовками.
echo -en "HEAD /index.html HTTP/1.1\r\nHost: example.com\r\n\r\nHEAD /other.html HTTP/1.1\r\nHost: example.com\r\n\r\n" | nc example.com 80
Это вывод, который я получаю из приведенной выше команды:
$ echo -en "HEAD /index.html HTTP/1.1\r\nHost: example.com\r\n\r\nHEAD /other.html HTTP/1.1\r\nHost: example.com\r\n\r\n" | nc example.com 80
HTTP/1.1 200 OK
Content-Encoding: gzip
Accept-Ranges: bytes
Age: 355429
Cache-Control: max-age=604800
Content-Type: text/html; charset=UTF-8
Date: Mon, 24 Feb 2020 14:48:39 GMT
Etag: "3147526947"
Expires: Mon, 02 Mar 2020 14:48:39 GMT
Last-Modified: Thu, 17 Oct 2019 07:18:26 GMT
Server: ECS (dna/63B3)
X-Cache: HIT
Content-Length: 648
HTTP/1.1 404 Not Found
Accept-Ranges: bytes
Age: 162256
Cache-Control: max-age=604800
Content-Type: text/html; charset=UTF-8
Date: Mon, 24 Feb 2020 14:48:39 GMT
Expires: Mon, 02 Mar 2020 14:48:39 GMT
Last-Modified: Sat, 22 Feb 2020 17:44:23 GMT
Server: ECS (dna/63AD)
X-Cache: 404-HIT
Content-Length: 1256
Если вы хотите увидеть более подробную информацию , запустите одну из этих команд, пока wireshark работает. Запрос отправлен в № 7 (выделено), а два ответа получены в № 11 и № 13. ![screenshot of wireshark](https://i.stack.imgur.com/d0n9L.png)