|
目录
HTTP 响应详解
认识 “状态码”
是一个数字, 这个数字描述了当前这次请求的 “状态” (成功还是失败, 失败的原因)
HTTP
的状态码是有明确的规定的, 状态码是有很多的, 本篇文章主要介绍常见的状态码.
状态码 | 状态 |
---|---|
200 | 表示访问成功 |
404 | Not found (问题的原因: 请求路径写错了) |
403 | Forbidden 访问被拒绝 (没有权限) |
500 | internal Server Error 服务器内部错误 |
504 | Gateway Timeout 访问超时 |
302 | 重定向, 访问一个旧的 URL 自动的转移到新的 URL 上. |
200
表示访问成功, 日常打开一个网站, 状态码基本都是 200
我们打开 fiddler
可以可以看到, 许多网站此处的状态码都是 200
404
Not found, 学习后端开发经常见到的一个错误.
问题的原因: 请求路径写错了
请求里 -> url -> 路径(表示你要访问的服务器上的资源)
如果你想访问的资源, 服务器上没有, 此时就会返回 404
.
比如: 我们打开 bing
, 在上方网址后面输入 gujiu.html
(我们的服务器是没有 gujiu.html 的)
刷新页面, 我们就会看到如下这样的页面
对应的响应也是 404
:
403
Forbidden 访问被拒绝 (没有权限)
比如: 我的 gitee
有私有仓库, 我们登录 gitee 是可以正常访问的
现在我们退出登录, 直接访问该网址
500
Internal Server Error 服务器内部错误 (服务器代码执行过程中, 出异常了)
在现有的网站中, 找一个 “500” 是比较困难的.
500
意味着服务器出 bug
了.
504
Gateway Timeout 访问超时了
一般就是服务器请求量很大的时候, 对于服务器的负荷就比较重.
302
重定向, 访问一个旧的 URL 自动的转移到新的 URL 上.
类似呼叫转移, 当有人给旧的号码打电话, 自动的转接到新号码上
典型场景:
- 服务器的地址迁移.
- 搜索引擎中的点击跳转.
状态码小结
类别 | 原因短语 | |
---|---|---|
1xx | Informational (信息性状态码) | 接收的请求正在处理 |
2xx | Success (成功状态码) | 请求正常处理完毕 |
3xx | Redirection (重定向状态码) | 需要进行附加操作以完成请求 |
4xx | Client Error (客户端错误代码) | 服务器无法处理请求 |
5xx | Server Error (服务器错误状态码) | 服务器处理请求出错 |
小知识
状态码中的彩蛋: 418
I’m a teapot
这个状态码是明确的写在 HTTP 对应的 RFC
标准文档中的.
认识响应 “报头” header
响应报头的基本格式和请求报头的格式基本一致.
类似于 Content-Type , Content-Length 等属性的含义也和请求中的含义一致.
Content-Type
响应中的 Content-Type 常见取值有以下几种:
text/html
: body 数据格式是 HTMLtext/css
: body 数据格式是 CSSapplication/javascript
: body 数据格式是 JavaScriptapplication/json
: body 数据格式是 JSON
认识响应 “正文” body
正文的具体格式取决于 Content-Type.
1) text/html
2) text/css
3) application/javascript
4) application/json
构造 HTTP 请求
- 浏览器自己构造的 (地址栏里写
URL
, 构造出 GET 请求)- 点击 a 标签, 会构造 GET 请求
- img, link, script 也会构造请求
form
表单 (只支持