답변:
하나의 연결에서 여러 요청을 제출하려면 계속 연결해야합니다.
GET / HTTP/1.1
Host: localhost
Connection: keep-alive
불행히도 서버가 항상 귀하의 요청을 준수 할 필요는 없습니다. 회신 할 수 있습니다. Connection: close
또는 Connection: keep-alive
. 전자 메일로 답장하는 경우 요청을 파이프 할 수 없으며 두 개의 연결을 사용해야합니다. netcat에 무언가를 뿌리 뽑는 것이 그렇게 결정을 내릴 수는 없기 때문에 안전한쪽에 머무르고 두 개의 연결을 사용하는 것이 좋습니다.
HTTP 서버에 문제가있을 수 있습니다. 모든 서버가 파이프 라이닝을 지원하는 것은 아닙니다. Libevent 하지 않습니다 예를 들어, (그리고 libevhtp는 고정되어있다 그것을 위해).
나는 nginx HTTP 서버를 사용하여 NC와 파이프 라이닝에 문제가 없다.
$ echo -en "GET / HTTP/1.1\r\nHost: fropl.com\r\n\r\nGET / HTTP/1.1\r\nHost: fropl.com\r\n\r\n" | nc localhost 80
HTTP/1.1 401 Unauthorized
Server: nginx/1.2.1
Date: Sat, 08 Jun 2013 21:38:59 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 0
Connection: keep-alive
WWW-Authenticate: Basic realm="frople"
HTTP/1.1 401 Unauthorized
Server: nginx/1.2.1
Date: Sat, 08 Jun 2013 21:38:59 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 0
Connection: keep-alive
WWW-Authenticate: Basic realm="frople"
추신 당신 텔넷이나 펄을 사용할 수있다. 당신이 NC를 의심한다면.