내가 찾고 있어요구문 분석되지 않은 원시 HTTPS 응답을 얻는 가장 직접적인 방법HTTPS를 통해 해당 URL에 GET 요청을 하고 구문 분석되지 않은 원시 응답을 받습니다.
다음은 작동합니다:
echo 'GET / HTTP/1.1
Host: google.com
' | openssl s_client -quiet -connect google.com:443 2>/dev/null
그러나 요청을 텍스트 파일에 넣고 cat
명령에 전달하고 싶습니다.
그래서 내가 만들었어요raw-http.txt
GET / HTTP/1.0
Host: google.com
명확히 말하면 뒤에 공백이 있습니다 Host: google.com
.
이제 내가 시도할 때:
cat raw-http.txt | openssl s_client -quiet -connect google.com:443 2>/dev/null
그것은 단지 오랜 시간 동안 멈춰 있다가 반응합니다 ^X%
.
echo
여기서 일하는데 왜 cat
안 됩니까? 나는 무엇을 해야 합니까?
답변1
뒤에 공백이 있습니다.
두 개가 있어야합니다.
$ echo '"'; cat raw.txt; echo '"'
"
GET / HTTP/1.0
Host: google.com
"
$ cat raw.txt | openssl s_client -quiet -connect google.com:443 2>/dev/null
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="https://www.google.com/">here</A>.
</BODY></HTML>
귀하의 echo
예에서는 원하지 않는 개행 문자가 추가로 있으므로 다음과 같이 작동합니다.
echo 'GET / HTTP/1.1
Host: google.com
' | openssl s_client -quiet -connect google.com:443 2>/dev/null