завиток висит ни на куске, ни близко, ни по размеру.Предположим, близко к концу сигнала. С моим http-сервером - PullRequest
0 голосов
/ 18 октября 2018

Я пишу простой http-сервер, который теперь может отвечать только 501. Но когда я тестирую его.он показывает

Попытка 127.0.0.1 ... * TCP_NODELAY set * Подключен к порту localhost (127.0.0.1) 9999 (# 0)

GET / bookstores / HTTP/1.1

Хост: localhost: 9999

Пользователь-агент: curl / 7.58.0

Принимать: /

HTTP/1.1 501 Не реализовано

без чанка, без закрытия, без размера.Предположим, что ближе к концу сигнала

мой код ответа выглядит так:

#include "handle_client.h"
#include <string.h>
const char *crlf = "\r\n";
const char *sp =" ";
const char *http_version = "HTTP/1.1";
const char *status_code_501 = "501";
char* response_501(){
    char *reason_phase = "Not Implemented";
    char *status_line = (char *)calloc(4096, sizeof(char));
    strcat(status_line, http_version);
    strcat(status_line, sp);
    strcat(status_line, status_code_501);
    strcat(status_line, sp);
    strcat(status_line, reason_phase);
    strcat(status_line, crlf);
    strcat(status_line, crlf);
    return status_line;
}

1 Ответ

0 голосов
/ 18 октября 2018

Вам необходимо либо закрыть соединение, либо указать поле заголовка длины содержимого (установить в ноль).См. RFC 7230, раздел 3.3.3.

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