Я читаю Землю Лиспа (ей 10 лет, но так же классно, так что она кажется достаточно актуальной). Я в главе 13, где вы пишете веб-сервер. Он просто открывает клиентский сокет как стандартный вывод , а затем использует princ
и format t
для записи клиенту. Полный исходный код веб-сервера: http://landoflisp.com/webserver.lisp.
У меня та же проблема с набранным кодом, загрузкой webserver.lisp с веб-сайта и его запуском. Когда я захожу на сайт в Chrome, я получаю ERR_INVALID_HTTP_RESPONSE. В Safari я не могу открыть страницу. Когда я пытаюсь перейти на сайт в Firefox, я получаю ожидаемую страницу, но все HTML-теги просто отображаются в виде текста. Когда я пытаюсь взаимодействовать с сайтом в curl, я получаю заключительный% в выводе, что я не уверен, откуда он берется.
> curl http://localhost:8080/greeting
<html><form>What is your name?<input name='name' /></form></html>%
Я знаю, что это не лучший HTML, но он делает то же самое, если добавить теги body и объявить html doctype в начале. % В ответе curl отсутствует в princ
, и я получаю%, когда пытаюсь перейти на другие URL-адреса для сервера, такие как localhost: 8080 или localhost: 8080 /reeting? Name = Lewis.
На самом деле я не планирую использовать этот веб-сервер для чего-либо, но остальная часть книги, похоже, посвящена созданию приложения, которое его использует, и я хотел бы закончить книгу, так что было бы неплохо если бы я мог хотя бы заставить веб-сервер работать хотя бы с одним браузером.