Telnet을 사용하여 HTTP 요청을 보내는 방법
Telnet을 사용하여 웹 페이지의 콘텐츠를 얻는 방법은 무엇입니까?
예를 들어, https://stackoverflow.com/questions
.
텔넷 ServerName 80
GET /index.html
당신은 할 수 있습니다
telnet stackoverflow.com 80
그리고 붙여 넣기
GET /questions HTTP/1.0
Host: stackoverflow.com
# add the 2 empty lines above but not this one
다음은 성적 증명서입니다.
$ telnet stackoverflow.com 80
Trying 151.101.65.69...
Connected to stackoverflow.com.
Escape character is '^]'.
GET /questions HTTP/1.0
Host: stackoverflow.com
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
...
후손에게 귀하의 질문은 http 요청을 https://stackoverflow.com/questions
. 진짜 대답은 : 텔넷으로는 할 수 없는데, 이것은 https 전용 URL이기 때문입니다.
예를 들어 다음과 같이 openssl
대신 사용하고 싶을 수 있습니다.telnet
$ openssl s_client -connect stackoverflow.com:443
...
---
GET /questions HTTP/1.1
Host: stackoverflow.com
그러면 https 응답이 제공됩니다.
이전 답변을 다소 확장하려면 몇 가지 합병증이 있습니다.
telnet
특별히 스크립팅 할 수 없습니다. 비 터미널 입력 및 신호를 더 잘 처리하는 대신 nc
(일명 netcat
) 을 사용하는 것이 좋습니다.
또한, 달리 telnet
, nc
실제로 SSL 수 있습니다 (그래서 https
대신 http
트래픽을 - 당신은 포트 443 대신 포트 80 다음이 필요합니다).
HTTP 1.0과 1.1에는 차이가 있습니다. 최신 버전의 프로토콜에서는 Host:
요청에 POST
또는 GET
줄 뒤에 별도의 줄에 헤더를 포함 하고 요청 헤더의 끝을 표시하기 위해 빈 줄이 뒤따라야합니다.
HTTP 프로토콜에는 캐리지 리턴 / 줄 바꿈 줄 끝이 필요합니다. 많은 서버가 이에 대해 관대하지만 일부는 그렇지 않습니다. 사용하고 싶을 수도 있습니다
printf "%\r\n" \
"GET /questions HTTP/1.1" \
"Host: stackoverflow.com" \
"" |
nc --ssl stackoverflow.com 443
If you fall back to HTTP/1.0 you don't always need the Host:
header, but many modern servers require the header anyway; if multiple sites are hosted on the same IP address, the server doesn't know from GET /foo HTTP/1.0
whether you mean http://site1.example.com/foo
or http://site2.example.net/foo
if those two sites are both hosted on the same server (in the absence of a Host:
header, a HTTP 1.0 server might just default to a different site than the one you want, so you don't get the contents you wanted).
The HTTPS protocol is identical to HTTP in these details; the only real difference is in how the session is set up initially.
참고URL : https://stackoverflow.com/questions/15772355/how-to-send-an-http-request-using-telnet
'IT Share you' 카테고리의 다른 글
rails, simple_form, 페이지가로드 될 때 컬렉션의 선택된 인덱스를 설정하는 방법은 무엇입니까? (0) | 2020.12.14 |
---|---|
편집 텍스트를 클릭 할 때 콘텐츠 푸시 (0) | 2020.12.14 |
ng-pattern을 사용하여 angularjs에서 이메일 ID를 확인하는 방법 (0) | 2020.12.14 |
응답과 함께 http 상태 코드를 반환하는 Curl (0) | 2020.12.14 |
sqlite에 대한 좋은 OO C ++ 래퍼는 무엇입니까 (0) | 2020.12.14 |