我正在用C编写一个非常简单的Web服务器,我想知道我应该处理来自浏览器的哪些HTTP请求.我看过像Mozilla's HTTP Header docs这样的网站,但这并不能确切地告诉我浏览器将发送什么.对于我正在try 做的事情来说,处理每个请求标头字段都是非常过分的.

如果有人能在我需要处理的问题上给我指明正确的方向,那就太好了.

我看到的请求的基本标头之一是:

GET / HTTP/1.1
Host: localhost:3000
Connection: keep-alive
sec-ch-ua: "Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9

但图像或文件等内容的标题是不同的.所以我想知道对于这些不同的请求将使用哪些字段有一个标准?

任何帮助,甚至只是一个链接,都将不胜感激.

推荐答案

请注意,从头开始编写一个http服务器并非易事.如果您仍然坚持要实现一个,那么请确保充分利用请求并做出相应的响应(基于建议,也就是标准).

C++相关问答推荐

初始化char数组-用于初始化数组的字符串是否除了存储数组的位置之外单独存储在内存中

在函数中使用复合文字来初始化C语言中的变量

识别和处理c中整数溢出的最佳方法?

在CLANG中调试预处理器宏

用C++实现余弦函数

这个C程序在工作中途停止获取输入.我收到分段故障(核心转储).我还是不知道问题出在哪里

无法在OpenGL上绘制三角形

在C++中父进程和子进程中的TAILQ队列同步问题

如何在VS 2022中正确安装额外的C头文件

在进程之间重定向输出和输入流的问题

将多项式从文件.txt加载到终端时出现问题

如何使用空元素块声明指针数组

在运行时判断C/C++指针是否指向只读内存(在Linux操作系统中)

*S=0;正在优化中.可能是GCC 13号虫?或者是一些不明确的行为?

在C中使用无符号整数模拟有符号整数

被调用方函数内部的C-Struct变量,它是指针还是无关紧要

我正在使用c学习数据 struct ,在学习堆栈时,我试图将中缀转换为后缀,并编写了这段代码.代码未给出输出

与指针的原始C数组或C++向量<;向量<;双>>;

如何找出C中分配在堆上的数组的大小?

窗口消息处理函数以某种方式更改了应保持不变的 int 变量的值