一、http 状态码的内容
http协议状态码:
状态码本身是负责客户端http请求的返回结果,标记服务器的处理是否正常,通知出现的错误等工作、
状态码的职责:当客户端向服务器发送请求的时候描述请求的返回结果,借助状态码,用户可以知道服务器端是否已经正确处理了请求。
状态码的五中类型:
- 1XX : 信息类状态码,接受的请求,表示请求正在处理。
- 2XX : 成功状态码,代表请求已经正常处理完毕。
- 3XX :重定向。表示需要附加操作,才能完成请求。
- 4XX :客户端错误,表示服务端无法处理请求。
- 5XX :服务器错误,表示服务器处理请求时,出错了。
二、OSI 七层模型
第一层:物理层:建立,维护,断开物理连接。
第二层:数据链路层:建立逻辑连接,进行硬件地址寻址,差错,校验等功能。
第三层:网络层:进行逻辑地址寻址,实现不同网络间的路径选择。
第四层:传输层:定义传输数据的协议端口号,以及流控和差错校验。
[协议有TCP,UDP,数据包一旦离开网卡即进入网络传输层]
第五层:会话层:建立,管理,终止会话。
第六层:表示层:数据的表示,安全,压缩等。
第七层:应用层:网络服务与用户的一个接口。
[协议有:HTTP , FTP , TFTP, SMTP, SNMP, DNS, TELNET, HTTPS, POP3, DHCP]
三、http协议工作特点和工作原理
http的工作特点:基于B/S模式,通信开销小,简单快速,传输成本低(打开浏览器即可访问),使用灵活,可使用超文本出书协议(HTML),节省传输时间,无状态。
http工作原理:客户端发送请求给服务器,创建一个TCP连接,指定端口号,默认80端口。连接到服务器,服务器监听浏览器请求,一旦监听到客户端请求,分析请求类型后,服务器会向客户端返回状态信息和数据内容。
四、http协议常见的响应/请求头信息和请求方法
http
常见请求响应头:
-
Content-Type
:请求与实体对应MIME信息; -
Accept
:指定客户端能接受的内容和类型; -
Origin
:最初的请求来源于哪里。主要用于post请求; -
Cookie
:http请求发起时,发送给服务端的cookie的值; -
Cache-Control
: 指定请求和响应的缓存机制; -
User-Agent
: 用户信息; -
Referer
:上级请求路径,所有请求都可以做(get,post)此处区别与Origin(Post请求)。 -
X-FORWARDED-FOR
: 请求端真是的IP,(做代理的时候可以使用到); -
Access-Control-Allow-Origin
:允许特定的域名访问(跨域时使用); -
Last-Modified
: 请求资源最后响应时间;
http常用的请求方法:
GET
, POST
, HEAD
, OPTIONS
, PUT
, DELETE
, TRACE
GET
:用于获取服务器资源,该操作是幂等的(select);
POST
:向请求资源提交数据,该操作是非幂等(create);
HEAD
: 与GET一样都是向服务器发送指定资源的请求,服务器响应时不会回传资源内容部分,只会回传head头信息;
OPTIONS
:与HEAD类似,用于客户端查看服务器的性能的,会请求服务器返回该资源所支持的所有http请求的方法。可测试服务器功能是否正常;
PUT
:向服务器资源上传最新内容,该操作是幂等的。通过该方法客户端可以将指定资源的最新数据传送给服务器。取代指定的资源内容(update);
DELETE
: 请求服务器,删除所请求的URI所表示的资源。DELETE请求提交后,该资源会被删除,该操作是幂等的(delete);
TRACE
: 请求服务器回显其受到的请求信息,用于http请求的测试;
http请求 GET
和 POST
请求方法的区别:
- GET做‘后退’操作按钮,刷新时无太大变化,是无害的。POST则会重复提交;
- GET 可以收藏为书签,POST不可能被收藏为书签;
- GET请求可以被浏览器缓存的,POST 不能缓存;
- GET 请求的信息为 application/x-www-form-urlencoded ,POST 请求为application/x-www-form-urlencoded or multipart/form-data. 请为二进制数据使用multipart编码;
- GET参数会被保存在浏览器历史当中,POST请求不会保存;
- 数据大小,GET请求参数受浏览器限制,一般最大2048字符。POST则是不受限制;
- 数据类型:GET请求只允许ASCII字符(gbk)类型,POST 没有限制;
- 安全性:GET的安全性差,所发送的数据是URL的一部分,是明文显示的。发送密码和重要信息是不能使用GET,POST是使用Post机制,对用户不可见,较为安全;