摘要
本章介绍cookie;
客户端请求的方法;
服务器端响应的状态码;
未完待续额~
HTTP协议简介
当客户端向服务端发送请求时,会发送请求报文
请求报文包括:请求方法,请求URI,协议版本,可选的请求首部字段和内容实体构成的
收到请求的服务器端会将请求内容的处理结果以响应的形式返回给客户端,称作响应报文
响应报文基本上由协议版本,状态码,用来解释状态码的简要短语和可选的响应首部字段和内容实体组成
cookie
HTTP是无状态的协议,就是该协议不会对客户端和服务端之间的通信状态进行保存
每当有新的请求产生,就得发送新的请求
但是随着web发展,需要保存状态的时候,cookie应运而生
初次通信 没有cookie
1、客户端向服务器端发送请求
2、服务器端收到请求,生成cookie,记住是哪个客户端发过来的
3、服务器端在响应中添加cookie后发送给客户端
4、客户端保存请求
有了cookie后
1、客户端发送带有自己保存的cookie信息的请求
2、服务器端收到请求之后检查cookie就知道是哪个客户端发过来的
3、响应
HTTP方法
GET(向服务器请求)
GET方法用来请求访问已被URI识别的资源
指定的资源经过服务器解析后返回
POST(向服务器传输实体[告知而不是为了获取])
POST方法用来传输实体的主体
和GET方法类似,但是POST主要目的不是获取响应的主体内容
PUT(向服务器传输文件)
PUT用来向服务器上传文件
但是由于HTTP1.1不带验证机制,任何人都能上传文件,存在隐患
所以一般不使用PUT
除非架构采用REST(表征状态转移)标准的web网站,可能开放PUT
HEAD
和GET方法类似,但是也不是获取内容的,而是获取资源的相关信息,例如有效性,资源更新的日期等等
DELETE
顾名思义,删除
同PUT,一般网站不会随意开放,除非REST标准
OPTIONS
查询服务器支持哪些方法
以上都是使用方法给服务器下命令
服务器端响应的状态码
状态码是服务器端处理客户端请求的结果
通常由三位数字和原因短语构成
主要分为以下几类
1xx 信息性
2xx 成功
3xx 重定向
4xx 客户端错误
5xx 服务器端错误
2xx 成功
200 OK
服务器端正常处理客户端的请求
该咋样咋样
204 no content
成功处理请求,但是没有资源返回
206
表示客户端对请求的资源范围作出规定,只想要资源的一部分
3xx重定向
301 永久重定向
请求的资源的URI发生改变,客户端需要对书签引用作出更新
请求的资源:我搬家了,你更新下我的地址吧~
302 临时重定向
请求的资源临时发生变化
请求的资源:我搬到临时住处了,你不用更新下我的地址,我可能还会回来
303
请求的资源存在另一个URI
应当使用GET方法定向请求资源
304
客户端发送带有条件的请求,服务端运行请求访问资源,但是不满足要求,返回304
附带条件的意识是采用GET方法的请求报文中含有IF-xxxx首部
4xx 客户端错误
400
请求报文中存在语法错误,服务器端理解不了
401
表示请求需要带有通过认证的认证信息
403
服务器端不允许客户端访问请求的资源
404
服务器端找不到请求的资源
5xx 服务端错误
500
服务器端执行请求的过程出错
503
服务器端暂时处于超负载或者维护的状态,无法处理请求