Skip to content

计算机网络笔记

常见的 HTTP 状态码有哪些?

HTTP 状态码为三位,主要分为五大类

  • 1xx:初步响应。表示服务器接收到了初步的请求,可以继续请求,101 比如服务器同意升级协议,比如 HTTP TO WebSocket
  • 2xx:表示请求成功,比如 201 表示资源创建完成,204 表示请求成功但是没有响应体
  • 3xx:表示资源重定向:301 表示资源永久搬家,浏览器会记住新地址,302 表示临时搬家,资源还会再回来的,304 表示资源不变,调用本地缓存就行
  • 4xx:客户端错误:比如 400 表示请求格式错误,401 表示没有登录或者 Token 过期,403 表示没有权限访问,比如普通用户访问管理员接口被打回来,404 表示资源没有被访问到
  • 5xx:通常为服务器问题,500 表示服务器代码异常,比如 NULL 或者 SQL 链接错误等,502 表示网关拿到了无效响应,上游服务器挂了或者是格式不对,503 表示服务不可用,比如流量太大给服务器打掉了,504 上游服务超时了

HTTP 请求包含哪些内容,请求头和请求体有哪些类型?

首先,HTTP 请求包含请求行,请求头,请求体

  • 请求行:包含请求方式,请求路径,请求协议,就是在浏览器上面看到的文本
  • 请求头:包含一系列键值对,告诉服务器我是谁,浏览器版号,操作系统,或者一些本地验证信息
  • 请求体:包含要提交给服务器的信息,

请求头和请求体之间用一个空行隔开,用于标记

请求头:

  • 通用头部:请求和响应都可以使用,Cache-Control 控制缓存、Connection 控制连接是否保持
  • 请求头部:用于请求,比如 Host 指定目标主机、User-Agent 标识客户端、Accept 告诉服务器想要什么格式、Authorization 带认证信息
  • 实体头部:用于描述请求,比如请求的格式,请求体的大小

请求体格式:

  • application/x-www-form-urlencoded:表单格式,最传统的格式,数据被编译成为:key=value 的形式
  • multipart/form-data:上传文件使用的格式,数据使用分解符做分割
  • application/json:JSON 格式,最常用的请求体格式
  • text/plain:纯文本,很少用
  • application/xml:XML,很少用

请求方法有什么?什么意思?

  • GET:用于获取资源,幂等,不应该对服务器的数据造成更改,不应因为 GEt 操作影响后续 GET 操作
  • POST:用于提交数据,不是幂等,可以对服务器资源造成影响
  • PUT:更新资源,幂等,可以对服务器资源造成影响
  • DELETE:删除资源,幂等,可以对服务器资源产生影响
  • PATCH:局部更新资源,只更新传入的字段,而不是整体的字段
  • HEAD:像 GET 一样请求数据,但是没有响应体,只有响应头,可以查看返回的数据的大小之类的元数据
  • OPTIONS:用于检查服务器的这个接口支持什么请求方法

HTTP 中 GET 和 POST 的区别是什么?

语义不同:GET 的语义是请求数据,不影响服务器数据,请求一百次还是一样的,POST 的语义是提交数据,服务器会根据数据去更新,每一次都会创建新的记录

参数传递不同:GET 没有请求体,因此会将参数拼接到 URL 上面,大小会被限制,会被日志记录下来,所以敏感信息最好不用 GET 提交,POST 方式有请求体,提交数据一般放在请求体中(虽然也可以放在 URL 中),适合更大的数据,而且不会被日志记录,所以更加安全,但是还是是明文记录的,真安全还是靠 HTTPS

幂等不同:按照规范,GET 请求应该是幂等的,POST 不用做幂等,但是这个规矩是死的,人是活的,具体开发还是看代码怎么写了

缓存机制:因为 GET 是幂等的,浏览器会主动缓存 GET 产生的数据,而 POST 不会去缓存,每次都会去打服务器

最后更新时间:2026/3/26

Contact me: 1943284256@qq.com