2023年10月9日,周一晚上
目录
什么是消息体
什么是HTTP响应
HTTP响应由谁产生,发给谁
响应头具体有什么内容
Content-Type的值怎么写
HTTP响应例子
什么是消息体
消息体(message body)指HTTP响应中的实体主体内容。
什么是HTTP响应
在HTTP响应中,主要包含:
- 状态行:如HTTP/1.1 200 OK
- 响应头:如Content-Type、Content-Length等
- 消息体:实际响应给客户端的内容
其中:
- 状态行和响应头属于响应元数据
- 消息体才是真正要发送给客户端的实体内容
HTTP响应由谁产生,发给谁
HTTP响应由服务器产生,发送给客户端。
具体来说:
- 产生HTTP响应的一方是服务器。当客户端向服务器发送HTTP请求时,服务器根据请求内容生成对应的HTTP响应。
- 服务器主要负责生成响应的各个部分,包括状态行、响应头和消息体内容。
- 产生响应后,服务器将完整的HTTP响应发送给原来发出请求的客户端。
- 客户端可以是浏览器、移动App或者其他程序,它发出HTTP请求后,会等待并接收服务器返回的HTTP响应。
- 浏览器或App收到响应后,会按照响应内容进行相应处理和展示。例如响应是一个网页,浏览器就会呈现该网页。
所以简单总结:
- 产生HTTP响应的是服务器
- 服务器根据请求生成响应各部分内容
- 服务器将完整响应发送给原来发出请求的客户端
- 客户端接收响应后根据内容进行后续处理
HTTP响应由服务器端产生,主要目的是响应客户端的请求,将结果返回给发出请求的客户端。这是HTTP工作模式的基本流程。
响应头具体有什么内容
主要的HTTP响应头包括:
- Status-Line - 状态行,包含HTTP版本、状态码和状态描述,如HTTP/1.1 200 OK
- Content-Type - 内容类型,如text/html、application/json、text/html;charset=utf-8等
- Content-Length - 内容长度
- Content-Encoding - 内容编码,如gzip
- Content-Language - 内容语言
- Cache-Control - 缓存控制相关指令
- Expires - 响应过期时间
- Last-Modified - 资源最后修改时间
- ETag - 实体标签,用于验证缓存是否过期
- Location - 重定向地址位置
- Set-Cookie - 设置Cookie
- Vary - 多种因素导致的内容不一致
- Connection - 连接控制相关,如close
- Date - 响应日期
- Server - Web服务器类型
- Allow - 允许的HTTP方法
- Content-Disposition - 内容打开方式
- 其他自定义头部
响应头提供了大量元数据,如内容类型、长度、语言、缓存策略等,对客户端处理响应很重要。它与状态行和消息体一起构成完整的HTTP响应。
Content-Type的值怎么写
Content-Type响应头字段的值格式通常为:
类型/子类型;参数
其中:
- 类型和子类型使用斜杠分割,用于标识MIME类型。如text/html。
- 参数使用分号和等号表示,可以有多个参数,用逗号分隔。
一些常见的Content-Type值写法包括:
text/html 表示HTML文档。
text/plain 表示纯文本。
application/json 表示JSON格式数据。
image/png 表示PNG图片。
application/octet-stream 通用二进制格式。
text/html;charset=utf-8 表示UTF-8编码的HTML文档。
application/xml;charset=utf-8 表示UTF-8编码的XML文档。
multipart/form-data; boundary=----WebKitFormBoundaryrb06p5EzZxbmFZic 表示表单数据的MIME类型。
所以一般形式为类型/子类型,可以带上相关参数。正确设置Content-Type有助于客户端正确解析响应内容。
需要注意参数用分号和等号表示,多个参数用逗号分隔
HTTP响应例子
请求一个网页:
状态行:HTTP/1.1 200 OK
响应头: Content-Type: text/html Content-Length: 100
消息体: ...
这里标签之间的HTML代码,就是这个响应的消息体部分。
所以简单来说,消息体指HTTP响应中传输给客户端的实际内容数据部分,与状态行和响应头形成了完整的HTTP响应结构。
它是服务器真正返回给客户端浏览器或App的主体数据。