文章

网络基本概念之http响应

响应的消息格式有三部分组成:响应行、响应头、响应体。

网络基本概念之http响应

http 是基于 请求-响应 的方式完成通信的,每一次通信都是由客户端向服务器发出请求,传递一些消息过去,然后经过服务器程序处理后,响应给客户端一些消息。

https 是在 http 协议基础上发展起来的,它增加了安全性,其他和 http 协议完全一致

响应的消息格式

服务器(通常由后端开发)收到请求的消息后,会运行后端代码对请求进行处理,处理完成后,会给予响应。

服务器的响应格式包含三个部分

image-20220415182351

响应行

响应行是整个响应字符串的第一行。

响应行包含两个部分:

  • 协议版本:表示服务器打算和客户端用什么协议通信
  • 状态码、状态消息:表示服务器对当前请求的表态

通常,状态码和状态消息是一一对应的,比如状态码 200 的消息就是 OK

不同的请求可能会得到不同的状态码,至于到底会得到哪个状态码,由后端程序决定。

状态码分为五类:

分类分类描述
1**信息,服务器收到请求,需要请求者继续执行操作
2**成功,操作被成功接收并处理
3**重定向,需要进一步的操作以完成请求
4**客户端错误,请求包含语法错误或无法完成请求
5**服务器错误,服务器在处理请求的过程中发生了错误

通常认为,0~399 之间的状态码都是正常的,其他是不正常的

常见的状态码有:

状态码状态信息描述
200OK一切正常
301Moved Permanently资源已被永久重定向
302Found资源已被临时重定向
304Not Modified文档内容未被修改
400Bad Request语义有误,当前请求无法被服务器理解
403Forbidden服务器拒绝执行
404Not Found资源不存在
500Internal Server Error服务器内部错误

响应头 header

和请求头一样,响应头也是由很多个键值对组成的,具体有哪些键值对,完全取决于服务器程序

目前,对我们最重要的键值对是Content-Type,它有多种取值,表示响应体的数据类型。

在 B/S 模式中,浏览器会自动根据响应头中Content-Type的取值,决定如何处理响应体。

  1. text/plain: 普通的纯文本,浏览器通常会将响应体原封不动的显示到页面上
  2. text/html:html 文档,浏览器通常会将响应体作为页面进行渲染
  3. text/javascript 或 application/javascript:js 代码,浏览器通常会使用 JS 执行引擎将它解析执行
  4. text/css:css 代码,浏览器会将它视为样式
  5. image/jpeg:浏览器会将它视为 jpg 图片
  6. attachment:附件,浏览器看到这个类型,通常会触发下载功能
  7. 其他MIME类型

响应体 body

响应的主体内容

本文由作者按照 CC BY 4.0 进行授权