질문이 있습니다. 텔넷을 사용하여 웹사이트 제목을 얻을 수 있습니까? 웹사이트는 다음과 같습니다 domain.name.server.com/~USER
(단순한 예). 텔넷을 통해 헤더를 얻고 싶습니다.
telnet domain.name.server.com/~USER 80
<-- 작동하지 않습니다
telnet domain.name.server.com 80
작동하지만 ~user를 가져와야 합니다. 이것이 가능합니까?
답변1
telnet domain.name.server.com 80
그런 다음 사용
HEAD /~USER HTTP/1.1
Host: domain.name.server.com
(그럼 다시 쳐야지 Enter.)
이제 페이지 제목이 표시됩니다.
실제 예를 들면 다음과 같습니다.
$ telnet unix.stackexchange.com 80
Trying 198.252.206.16...
Connected to unix.stackexchange.com.
Escape character is '^]'.
HEAD /questions/237635/using-telnet-to-get-website-header HTTP/1.1
Host: unix.stackexchange.com
HTTP/1.1 200 OK
Cache-Control: public, no-cache="Set-Cookie", max-age=60
Content-Length: 70679
Content-Type: text/html; charset=utf-8
Expires: Wed, 21 Oct 2015 19:27:43 GMT
Last-Modified: Wed, 21 Oct 2015 19:26:43 GMT
Vary: *
X-Frame-Options: SAMEORIGIN
X-Request-Guid: dbf9d0f6-0ca4-423f-98f0-4cdf2bf51bf1
Set-Cookie: prov=08886524-c640-40ad-a0ee-246db3219228; domain=.stackexchange.com; expires=Fri, 01-Jan-2055 00:00:00 GMT; path=/; HttpOnly
Date: Wed, 21 Oct 2015 19:26:43 GMT
Connection closed by foreign host.
답변2
wget
Telnet 대신 사용할 수 있는 경우 다음 명령 하나로 모든 헤더를 얻을 수 있습니다.
wget -q -S -O - domain.name.server.com/~USER | : 2>&1
-q
일반 로그 메시징 끄기-S
서버에서 헤더 로깅 켜기-O -
다운로드한 파일의 내용을 STDOUT으로 전달| :
다운로드한 파일의 내용을 무작동 유틸리티로 파이프합니다:
. 이렇게 하면 전체 파일이 다운로드되는 것을 효과적으로 방지할 수 있으므로 파일이 큰 경우 유리할 수 있습니다.2>&1
(선택 사항) 기록된 헤더를 STDOUT으로 리디렉션
예를 들어:
$ wget -q -S -O - unix.stackexchange.com/questions/237635/using-telnet-to-get-website-header | :
HTTP/1.1 200 OK
Cache-Control: public, no-cache="Set-Cookie", max-age=49
Content-Type: text/html; charset=utf-8
Expires: Wed, 21 Oct 2015 21:22:21 GMT
Last-Modified: Wed, 21 Oct 2015 21:21:21 GMT
Vary: *
X-Frame-Options: SAMEORIGIN
X-Request-Guid: 5ac03697-68fa-4be5-9f32-2905ec3eff38
Set-Cookie: prov=5d9866f4-9d98-4587-a7cc-f6ea5cd76075; domain=.stackexchange.com; expires=Fri, 01-Jan-2055 00:00:00 GMT; path=/; HttpOnly
Date: Wed, 21 Oct 2015 21:21:32 GMT
Content-Length: 76585
$
답변3
Curl은 HTTP 헤더를 보는 깔끔한 방법이기도 합니다.
curl -v http://unix.stackexchange.com/questions/237635/using-telnet-to-get-website-header
답변4
Telnet 대신 openssl을 사용하여 https를 통해 이 작업을 수행할 수도 있습니다. 예가 있습니다이 튜토리얼내가 최근에 게시한 내용:
openssl s_client -connect domain.name.server.com:443
HEAD /~USER HTTP/1.0
Host: domain.name.server