HTTP 协议

1、协议 ---- 协商议定
HTTP 协议:
浏览器发数据给服务器
服务器返回数据给浏览器

作用:规范双方的数据交互的

2、HTTP协议 --- 超文本传输协议
两点:
请求协议
响应协议
特点:
基于请求响应的
HTTP 协议的默认端口是 80
HTTP 协议版本:
1.0 ---- 访问一次资源创建一个连接
1.1 ---- 只有一个连接(效率更高)

3、HTTP 协议组成


 

请求行:

请求行必须在必须在HTTP请求格式的第一行

请求行格式:协议规定7中, 常用两种GET和POST

GET请求:

  将请求参数追加在URL后面,不安全

  URL长度限制GET请求方式的大小

  没有请求体

POST请求

  请求参数显示请求提出,较安全

  请求数据大小没有限制

  只有表单设置为method="post" 请求,其他的都是get请求,

  常见的get请求,地址栏直接访问,  <a href="">, <img src="">等

请求头:

  例如 Host:localhost:8080

  请求头从第二行开始,到第一个空行结束,  请求头和请求体之间存在一个空行

  请求头通常以键值对(key:value) 方式传递数据

  key为规范规定的固定值 , value为key对应的取值,通常是一个值,可能是一组

请求体:

  通常情况下,只有post请求方式才会使用到请求体, 请求体中都是用户表单提交的数据, 每一项数据

  都是使用键值对(k=v), 多组织使用&相连;

http响应:

 

http响应的格式: 响应行,响应头,响应体  

响应行: 

  例如HTTP/1.1 200 ok

  格式:协议/版本号 状态码 状态码描述

状态码: 服务器和浏览器永固确定状态的固定数字

响应头(重点):
状态码
1xx: ----- 原则上杜绝出现,请求正常,但是不给响应
2xx: ----- 200 响应正常
3xx: -----
304 和缓存有关,找本地缓存资源

referer 
cookie
content-Type --- (文件上传)



响应时:
ETAG:毫秒值 ---- 文件最后时间
Date:时间 ----- 响应时间

浏览器存储响应的时间戳
再次访问时,将存储的时间携带至服务器
请求头:
if-modified-since:上次传输来的 Etag 值(文件最后修改时间)

服务器解析出值,比较文件的修改时间,如果一样,返回 304
否则,将文件内容输出



4xx: ----
404 ---- 路径不存在
5xx: ----
500 ---- 服务器内部错误
refresh(非常重要):

referer :定时刷新,格式: 秒数;url=路径.  url可省略, 默认值为当前页
缓存结合时间戳实现:
刷新
比如,早上看了天气预报是晴天 ,然后后, 去洗漱一下, 吃个饭后, 如果页面没有手动刷新是不会变的, 但是这个时候可能

外面已经下雨了,  通过referer可以实现浏览器实时刷新; 
1、实现浏览器的自动刷新
2、服务器告知浏览器进行刷新操作
refresh=3;





4、referer
A、直接访问页面A,不会出现 referer
B、从B页面跳转到A页面,出现 referer = "B页面的url"
referer 传到服务器之后,服务器可以解析出从那个页面跳转到A的

作用:
A、防盗链实现 结合 referer
B、网站统计 结合 referer






posted @ 2017-04-01 15:24  wupf  阅读(190)  评论(0编辑  收藏  举报