对 http 请求 header 值的格式感到困惑吗?

标签 c http

根据rfc2616第3.11节,实体标签的格式如下:

实体标签= [弱]不透明标签

弱=“W/”

不透明标签=引用字符串

在 rfc2616 第 14.24 节中给出的条件“If-match”的示例如下:

如果匹配:“xyzzy”

如果匹配:“xyzzy”、“r2d2xxxx”、“c3piozzzz”

如果匹配:*

我正在用c语言做一个项目,我将在其中解析来自不同客户端的http请求。 Web 服务器也是用 c 编写的,从 Web 服务器我可以获取请求 header 和值作为 const char* 并解析它们。但我的困惑是, header "If-match" 中的值将类似于 "xyzzy, r2d2xxxx ,c3piozzzz" 还是类似于 “xyzzy”、“r2d2xxxx”、“c3piozzzz””?你知道哪一个是对的吗?如果 If-Match header 值具有实体列表,则每个 etag 之间肯定会有空格吗?我的意思是格式将是以下类型吗?

If-Match:“一个实体标签”,[空格]“第二个实体标签”,[空格]“第三个实体标签”

如果 If-Match header 值具有 etag 列表,则没有说明其格式。 rfc2616 仅给出了一个示例(我在上面展示过)。这个例子可靠吗?

最佳答案

您可以相信规范和示例:双引号实际上是 ETag 的一部分。

关于对 http 请求 header 值的格式感到困惑吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10914578/

相关文章:

c# - 如何设置 Windows.Web.Http.HttpRequestMessage HttpVersion?

java - 使用 HttpClient 在 Java 中进行 Http 基本身份验证?

http - NGINX 根据 header 的值设置 cookie

sql-server - SQL Server 存储过程 : Read data from URL text file

c - 使用字符指针复制字符串

java - Java代码的C实现的输出差异

c - 分配内存并写入(使用 fread)作为参数传递给返回 SIGSEGV 的函数的字符串

http - Web 应用程序开发 - 如何让入站 http 请求命中多个环境

从结构指针复制到C中数据库的结构指针

c - mq_send 和 msgsnd 的区别