Za pomocą polecenia telnet docs.python.org 80
mogę wykonać ręczne żądanie HTTP http://docs.python.org/2/license.html
, wpisując rzeczywiste żądanie.
Teraz zamiast wpisywać go na żywo, chciałbym nakarmić żądanie z pliku tekstowego.
Próbowałem tego:
cat request.txt|telnet docs.python.org 80
request.txt :
GET /2/license.html HTTP/1.1
Host: docs.python.org
(Musisz zakończyć plik pustą linią, inaczej dostaniesz złe żądanie!)
Ale połączenie z serwerem jest natychmiast zamykane.
W jaki sposób należy prawidłowo rura request.txt do telnet docs.python.org 80
?
edytować:
Dobrze wiedzieć; jeśli użyjesz HEAD
zamiast GET
, otrzymasz taką samą odpowiedź, jak w przypadku GET
żądania, z wyjątkiem treści wiadomości.
Tak więc użyj, HEAD
jeśli chcesz tylko sprawdzić nagłówki HTTP. (tzn. aby treść odpowiedzi nie zaśmiecała danych wyjściowych powłoki).
telnet docs.python.org 80
, więc będziesz musiał się spieszyć i wpisać te dwie linie (skopiuj wklej, jeśli jest to konieczne) w ciągu kilku sekund, inaczej serwer zwróci błąd przekroczenia limitu czasu.
telnet docs.python.org 80
<ENTER>
GET /2/license.html HTTP/1.1
<ENTER>
Host: docs.python.org
<ENTER>
<ENTER>
<ENTER>
po raz drugi na końcu, jest to, że protokół HTTP wymaga dodatkowej pustej linii po nagłówkach żądania. Zobacz sekcję dotyczącą wiadomości żądania w artykule wiki HTTP
telnet < request.txt
ale nie mogę uruchomić GET
polecenia.
GET
opublikowanego przez ciebie408 Request Time-out
komunikatu pojawia się błąd. Ponadtowget http://docs.python.org/2/license.html
nie ma opcji?