http ответ на запрос GET - работает в FF, а не в Chromium - PullRequest
1 голос
/ 03 апреля 2010

Ради интереса я пытаюсь написать очень простой сервер на C.

Когда я send этот ответ на Firefox, он распечатывает тело "привет, мир", но с хромом он дает мне Error 100 (net::ERR_CONNECTION_CLOSED): Unknown error.

Это, я полагаю, соответствующий код:

char *response = "HTTP/1.0 200 OK\r\nVary: Accept-Encoding, Accept-Language\r\nConnection: Close\r\nContent-Type: text/plain\r\nContent-Length:20\r\n\r\nhello, world";
    if(send(new_fd, response, strlen(response), 0) == strlen(response)) {
        printf("sent\n");   
    };

    close(new_fd);

Чего мне не хватает?

Спасибо!

1 Ответ

2 голосов
/ 03 апреля 2010

Content-Length кажется 12, а не 20.

http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.4:

Когда в сообщении указана длина содержимого, где разрешено тело сообщения, значение его поля ДОЛЖНО точно соответствовать количеству OCTET в теле сообщения. Пользовательские агенты HTTP / 1.1 ДОЛЖНЫ уведомлять пользователя, когда получена и обнаружена неверная длина

Разве это не значит, что FF нарушает спецификации? (Ну, вы используете HTTP / 1.0, так что, возможно, нет.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...