Вопрос №596 от пользователя user-9d13369ac2325f57 в уроке «HTTP 1.0», курс «Протокол HTTP»
root@b6c489cff1c0:/usr/src/app# telnet localhost 8080
Trying ::1...
Connected to localhost.
Escape character is '^]'.
GET /about.html HTTP/1.1
HTTP/1.1 404 Not Found
Content-Type: text/html; charset=ISO-8859-1
Server: WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
Date: Fri, 01 May 2015 13:44:57 GMT
Content-Length: 280
Connection: close
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD><TITLE>Not Found</TITLE></HEAD>
<BODY>
<H1>Not Found</H1>
`/about.html' not found.
<HR>
<ADDRESS>
WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13) at
localhost:8080
</ADDRESS>
</BODY>
</HTML>
Connection closed by foreign host.
root@b6c489cff1c0:/usr/src/app#
Что не так???
Вы не указали хост hexlettesthost.com
Где не указан хост?
root@b6c489cff1c0:/usr/src/app# telnet hexlettesthost.com 8080
telnet: could not resolve hexlettesthost.com/8080: Name or service not known
Вы правильно начали, коннектиться телентом нужно к серверу (localhost), а вот начиная с версии HTTP 1.1 необходимо указать хост уже в запросе:
GET /about.html HTTP/1.1
Host: hexlettesthost.com
Первое завершил, спасибо. А как выглядит запрос логина?
POST /login?login=user&password=12345678 HTTP/1.1 HOST: hexlettesthost.com
root@b6c489cff1c0:/usr/src/app# telnet 127.0.0.1 8080
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is ']'.
POST /about.html?login=user&password=12345678 HTTP/1.1
HOST: hexlettesthost.com
HTTP/1.1 200 OK
Content-Length: 21
Server: WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
Date: Fri, 01 May 2015 16:15:32 GMT
Connection: Keep-Alive
Yeah, good request ;)Connection closed by foreign host.
Все равно не пройдено (
См. совет в README: "Не используйте 'Connection: keep-alive', так как нам нужно, чтобы соединение было закрыто после запроса."
Соответственно, нужно использовать "Connection: close"
При использовании POST данные передаются в теле запроса, а не заголовках.
POST /login HTTP/1.1 HOST: hexlettesthost.com Content-type: application/x-http-form-urlencoded Connection: close Content-Length: 28 login=user&password=12345678
bad header 'login=user&password=12345678\r\n'.
Конечно не хедер), протокол http простой как два рубля. Заголовки идут в начале и разделяются переводом строки, тело идет потом и отделяется дополнительным переводом строки, вот и все собственно. А у вас тут все в одну строчку.
Вы попробуйте на хекслете поменять данные в любой форме (в личном кабинете) и в инструментарии разработчика (в каждом браузере есть) посмотрите как отсылается заголовки и тело.
если нажать enter 2 раза (перевод строки), то отсылается запрос. Как мне обозначить перенос строки? \r\n не канает
эм.. с такой поддержкой наверное хорошо продажи идут, да?
Добрый день, у вас ошибка в хедере: Content-type: application/x-http-form-urlencoded Такого значения у данного хедера не существует. Правильный вариант: Content-Type: application/x-www-form-urlencoded
(http -> www)
Когда вы исправите этот хедер, второй перевод строки не будет отсылать запрос. Никакой магии и синхрофазотрона не замечено ;)
Используйте Хекслет по максимуму!
- Задавайте вопросы по уроку
- Проверяйте знания в квизах
- Проходите практику прямо в браузере
- Отслеживайте свой прогресс
Зарегистрируйтесь или войдите в свой аккаунт
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.







