【发布时间】:2020-08-10 13:00:26
【问题描述】:
我是 facil.io 框架的新手。我创建了一个简单的服务器来加载 html 页面。当我在 Firefox 中打开本地主机时,它会完美加载。如果我刷新页面,它会收到 304 消息并在浏览器中显示 html 文本。
#include "http.h"
void on_request(http_s *request);
FIOBJ HTTP_HEADER_X_DATA;
int main(void) {
HTTP_HEADER_X_DATA = fiobj_str_new("X-Data", 6);
http_listen("3000", NULL, .on_request = on_request, .log = 1);
fio_start(.threads = 1);
fiobj_free(HTTP_HEADER_X_DATA);
}
void on_request(http_s *request) {
char *filepath = "index.html";
http_set_cookie(request, .name = "my_cookie", .name_len = 9, .value = "data",
.value_len = 4);
http_set_header(request, HTTP_HEADER_CONTENT_TYPE,
http_mimetype_find("txt", 3));
http_set_header(request, HTTP_HEADER_X_DATA, fiobj_str_new("my data", 7));
if(http_sendfile2(request, filepath, strlen(filepath), NULL, 0)) {
http_send_error(request, 404);
FIO_LOG_WARNING("Can't read file %s", filepath);
}
}
输出:
127.0.0.1 - - [Mon, 26 Apr 2020 02:39:15 GMT] "GET / HTTP/1.1" 200 3328b 252ms
127.0.0.1 - - [Mon, 26 Apr 2020 02:39:17 GMT] "GET / HTTP/1.1" 304 -- 275ms
【问题讨论】:
-
浏览器显示正确吗?如果是这样,304 不是问题。
-
@JosephSible-ReinstateMonica 它将 html 显示为纯文本而不是普通视图
-
@Myst 你能帮我吗