0. 网络连接的问题 vs 域名解析的问题
测试的方法主要有两个,
- 如果是域名解析出了问题,浏览器将会很快给出响应
- 如果将域名转换为对应的ip地址,浏览器能对其该ip进行响应的话,则证明是网络连接的问题
1. http status code:状态码
-
1xx:
- 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。
- 客户端 get 请求中包含一个
Upgrade: websocket Connection: Upgrade
的头,也即要求服务器端将协议升级为 websocket 以建立 websocket 连接,服务器端如果返回 101 的状态码,则表示,服务器端确认且实现切换;
- 客户端 get 请求中包含一个
- 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。
-
2xx(成功):
- 200:OK;
- 201:Created;请求成功并且服务器创建了新的资源;(比如提交一个 post 请求,post 请求会在服务器侧创建新的资源,相较而言,put 仅用来更新而不是创建)
- 202:Accepted
- 204:No Content,服务器成功处理客户端的请求,但未返回任何内容,比如对客户端的 OPTIONS 请求,便不需要返回内容;
-
4xx(请求错误):
- 401:Unauthorized,表示请求要求用户授权或当前证书授权失败;
- 404:Not Found,链接指向的网页不存在,即原始网页的URL失效
- 405:Method not allowed,方法(比如post方法)不被允许
- 444:No response
-
5xx(服务器错误):
- 500:Internal Server Fault:内部服务器错误,无法处理请求;
- 501:Service Unavailable,服务器因维护或临时因负荷过高而不能立即处理请求;
- 502:Bad Gateway
-
3xx(请求重定向):表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。
- 302是一个普通的重定向代码。
- 直观的看来是,请求者(浏览器或者模拟http请求)发起一个请求,然后服务端重定向到另一个地址。而事实上,服务端仅仅是增加一条属性到header,location=重定向地址。而一般的,浏览器会自动的再去请求这个location,重新获取资源。也就是说,这个会使得浏览器发起两次请求。
- 303 See Other。通常是指所请求的资源在别的地方,并且同302一样,会在header中的location标明资源的位置。在我的一个是使用过程中,我想要创建一个user,当关于这个user的key已经存在的时候,server将返回303,并且告之这个user的获取位置。
- 304: Not modified;
- 302是一个普通的重定向代码。
References
[1] <a href=“https://zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81”, target="_blank">HTTP状态码