파싱되지 않은 원시 HTTPS 응답을 얻는 가장 간단한 방법


39

HTTPS를 통해 URL에 GET 요청을하고 파싱되지 않은 원시 응답을 얻는 가장 간단한 방법은 무엇입니까?

컬로 이것을 달성 할 수 있습니까? 그렇다면 어떤 옵션을 사용해야합니까?

답변:


51

을 사용하려면 다음 curl과 같이 작동합니다.

curl -D - https://www.google.com/

그러나 이것은 정확히 원시 응답이 아닙니다. 예를 들어 청크 분할 전송 인코딩 은 응답에 표시되지 않습니다. 이를 사용하면 --raw자세한 모드 ( -v)도 유용 -i하며 응답 본문 앞에 헤더를 표시합니다.

curl -iv --raw https://www.google.com/

결과에서 덜 사용하는 호출기를 사용하려면 진행률 표시 줄 ( -s) 을 비활성화해야합니다 .

curl -ivs --raw https://www.google.com/ | less

원하는 작업에 따라 문제가 될 수도 있고 아닐 수도 있습니다.

당신이 얻는 것은 모든 HTTP 응답 헤더와 요청 된 URL의 문서입니다.


13

생각 나는 간단한 방법이 있습니다.

echo 'GET / HTTP/1.1
Host: google.com

' | openssl s_client -quiet -connect google.com:443 2>/dev/null

일부 서버 (예 : github.com)는 다음과 만 작동합니다.HTTP/1.0
Steven Penny

4

그렇지 curl는 않지만 거의 모든 Unices에서 사용할 수 있어야합니다.

wget -S --spider https://encrypted.site

상태 메시지가 귀찮은 경우 :

wget -S --spider https://encrypted.site 2>&1 | awk '/^  /'

CRLF 줄 끝을 원한다면 :

wget -S --spider https://encrypted.site 2>&1 | awk '/^  / { sub(/$/,"\r"); print }'

이것이 \r\n응답 의 문자를 보존하는지 알고 있습니까?
Acorn

@Acorn-우선, 모든 웹 서버가 \r\n줄 끝으로 응답하지는 않습니다 . 나는 이것이 어떤 경우에도 그것을 보존 할 것이라고 믿지 않지만 그것이 당신에게 중요하다면, 그 결과를 대답으로 얻는 방법을 추가 할 것입니다.
Chris Down

1
$ GET -e https://www.google.com

데비안 / 우분투에서 배포판은 패키지에 속합니다 lwp-request.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.