Я хочу написать простой веб-сервер на таком языке, как C. Я хочу знать, есть ли у меня правильный синтаксис для 200 OK и 404. Not Found.
rfc2616 говорит, что ответ должен быть:
Response = Status-Line
* (( general-header
| response-header
| entity-header ) CRLF)
CRLF
[ message-body ]
Для меня ответ 200 OK будет в форме:
HTTP/1.1 200 OK\r\n
Content-Type: text/html\r\n
<html>\r\n
<head><title>test</title></head>\r\n
<body>Success!!</body>\r\n
</html>\r\n
и 404 Not Found ответ будет иметь форму:
HTTP/1.1 404 Not Found\r\n
Content-Type: text/html\r\n
<html>\r\n
<head><title>test</title></head>\r\n
<body>Not Found</body>\r\n
</html>\r\n
Должен ли вообще существовать Content-Type? Должна ли быть длина контента? Можно ли проверить, что мой ответ действителен в режиме онлайн?
Кроме того, на веб-сервере в C вы бы использовали write (), чтобы ответить клиенту правильно?