网络协议 状态码 及 网络协议层层向下委托模型

avatarplhDigital nomad

前言

反正都是要背的

1XX

状态码英文解释
100Contoinue继续接受请求
101Switch Protocol切换http协议,比如切换到更高级的http协议

2XX

状态码英文解释
200OK请求成功
201Created请求成功,创建文件
202Accept服务器接受请求,正在处理请求
203Non-Authoritative Information请求成功,但是meta头部信息有待切换
204No Content请求成功,返回信息为空
205Reset Content请求成功,重置内容,比如表单信息重置
206Partial Content服务器成功处理了部分get请求

3XX

状态码英文解释
300multiple Choice多条线路提供选择
301Moved Permanently永久重定向,比如http重定向到https,后面所有请求都走https
302Found临时重定向,只有当前文件重定向
303See Other永久重定向,但是和301不同,他说get请求的永久重定向
307Temporary Redirect临时重定向,但是和301不同,他说get请求的临时重定向
304Not Modified文件未修改,可以直接从缓存中去拿
305Use Proxy需要通过代理服务器中才能访问
306Unused状态码作废

4XX

状态码英文解释
400Bad Request客户端发送的请求错误
401Unauthorized请求未通过验证
402Payment Request将来用
403Forbidden禁止访问
404Not Found找不到资源
405Method Not Allowed客户端不支持该方法get/post/put/delete/option
407Proxy Authentication代理服务器未通过验证,和401相互验证
410Gone之前有的资源,现在已经不存在,可以通过301使用永久重定向
414Request-URL Too Large请求的url过长

5XX

状态码英文解释
500Interval Server Error服务器请求发生错误。http的错误,和400相互照应
501Not Implemented服务器不支持该方法get/post/put/delete/option和405相互照应
502Bad Gateway网关错误
503Service Unavailable由于服务器超负荷或者服务器错误,因而无法处理客户端请求
504Gateway timeout网关回应超时
505HTTP Version not supported服务器不支持该http协议版本,无法处理请求。

网络七层模型

作为一个web基层人员,怎么能不会。。。网络协议的起源:巨头互联网公司苹果,IBM,微软都有自己的协议,后来为了沟通方便,统一使用同一种协议。

协议是分层的,有几种不同的分层方式

OSI 模型

名称英文解释数据单位
应用层Application Layer浏览器/browser比特流(bits)
表示层Presentation Layer数据类型;https加密服务/Type of Data; HTTPS-Encryption Sevices
会话层Session Layer开始结束会话并保持他们独立/Starts and Ends session and also keeps them isolation包(package)
传输层Transport Layer定义端口和/Defineds Ports and Reliability;如:TCP/UDP段(Segments)
网络层Network Layer定义IP编址,定义路由功能;如不同设备的数据转发。
数据链路层Data Link Layer定义数据的基本格式,如何传输,如何标志;如网卡MAC地址
物理层Physical Layer底层数据传输,如网线,网卡标准

网络分层的意义。每一层都是一个独立的黑盒,上层对于下层的传输取决于接口,只要保持接口不变,就不会有问题。这种模型,从上到下,越来越接近过硬件。

最后

建议一直开着fidder这样的抓包工具,会对http状态码有更高层次的理解。就像我一直开着shadowsocket这样子。 image

Reference

HTTP状态码 - 菜鸟教程