HTTP协议就是规定了服务器和浏览器之间通信的格式(规则)。
HTTP协议的格式:首行,头,空行,正文(体)。
http请求头:
Referer:请求来自哪里,如果是在http://www.baidu.com上点击链接发出的请求,那么Referer的值为http://www.baidu.com。如果是直接在浏览器地址栏中直接输入的地址发出的请求,那么Referer为空。
用途:
* 统计来源:例如通过百度访问本网站的次数
* 防盗链:例如防止非点击本站链接来直接访问本站资源的行为
请求协议:
请求首行 ==> 请求方式 请求路径 协议/版本号
请求头 ==> 键:值
请求空行 ==> 空白行,用于分隔头与正文
请求正文 ==> 只有POST请求有正文,表单提交的键值对
响应协议:
响应首行 ==> 协议/版本号 状态码 状态码描述
响应头 ==> 键:值
响应空行 ==> 空白行,用于分隔头与正文
响应正文 ==> HTML代码,CSS,JS,图片......
http响应头:
三种禁用浏览器缓存的响应头
* Expires: -1
* Cache-Control: no-cache
* Pragma: no-cache
状态码:
200 --> 成功
302 --> 请求重定向(两次请求)
304 --> 请求资源没有改变(缓存机制)
404 --> 请求的资源不存在,属性客户端错误
500 --> 服务器内部错误(代码错了)
GET请求:
1.请求数据长度不能超过1K
2.请求参数会在浏览器地址栏中显示出来
3.GET请求没有请求体(请求正文),参数是追加在url后面的
POST请求:
1.请求数据没有上限
2.请求参数不会在浏览器地址栏中显示
3.有请求体(请求正文)
4.请求参数默认使用URL编码