HTTP协议

介绍

HTTP协议用于定义客户端和web服务器之间通信的格式;
HTTP,超文本传输协议,基于TCP/IP协议的一个应用层协议,用于定义浏览器和web服务器之间交换数据的过程;
有2个版本1.0 1.1
在HTTP1.0中,客户端和服务器之间建立连接后,只能获得一个web资源;
在HTTP1.1中,客户端和服务器之间建立连接后,在一个连接上可以获得多个资源;

HTTP请求

http请求格式

这里写图片描述

这里写图片描述
这里写图片描述

请求头

Accept:告诉服务器,客户机支持的数据类型;/表示全部支持
Accept-Charset:告诉服务器,客户机采用的编码方式;
Accept-Encoding:告诉服务器,客户机支持的数据压缩格式;
Accept-Language:客户机的语言环境;
Host:告诉服务器,想访问的主机;
If-Modified-Since:告诉服务器,资源的缓存时间;
Referer:告诉服务器,从哪个资源访问服务器的
(防盗链,关于盗链和防盗链技术: http://baike.so.com/doc/2665550-2814914.htmlhttp://windyli.blog.51cto.com/1300305/315283/
User-Agent:告诉服务器,客户机的语言环境;
Cookie:客户机通过这个头向服务器带数据;
Connection:请求完成后,是保持连接还是关闭连接;
Date:

HTTP响应

http响应格式

这里写图片描述

状态行

这里写图片描述

常用的状态行的意义
302:客户机向服务器请求资源,服务器要客户机向新的地址请求;
307、304:服务器要客户机从缓存中取资源,不会送资源;
404:访问的资源不存在;
403:访问的资源存在,但没有权限;

1**:请求收到,继续处理
100——客户必须继续发出请求
101——客户要求服务器根据请求转换HTTP协议版本

2.3.2.2 2**:操作成功收到,分析、接受
200——交易成功
201——提示知道新文件的URL
202——接受和处理、但处理未完成
203——返回信息不确定或不完整
204——请求收到,但返回信息为空
205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件
206——服务器已经完成了部分用户的GET请求

2.3.2.3 3**:完成此请求必须进一步处理
300——请求的资源可在多处得到
301——删除请求数据
302——在其他地址发现了请求数据
303——建议客户访问其他URL或访问方式
304——客户端已经执行了GET,但文件未变化
305——请求的资源必须从服务器指定的地址得到
306——前一版本HTTP中使用的代码,现行版本中不再使用
307——申明请求的资源临时性删除

2.3.2.4 4**:请求包含一个错误语法或不能完成
400——错误请求,如语法错误
401——未授权
HTTP 401.1 - 未授权:登录失败
  HTTP 401.2 - 未授权:服务器配置问题导致登录失败
  HTTP 401.3 - ACL 禁止访问资源
  HTTP 401.4 - 未授权:授权被筛选器拒绝
HTTP 401.5 - 未授权:ISAPI 或 CGI 授权失败
402——保留有效ChargeTo头响应
403——禁止访问
HTTP 403.1 禁止访问:禁止可执行访问
  HTTP 403.2 - 禁止访问:禁止读访问
  HTTP 403.3 - 禁止访问:禁止写访问
  HTTP 403.4 - 禁止访问:要求 SSL
  HTTP 403.5 - 禁止访问:要求 SSL 128
  HTTP 403.6 - 禁止访问:IP 地址被拒绝
  HTTP 403.7 - 禁止访问:要求客户证书
  HTTP 403.8 - 禁止访问:禁止站点访问
  HTTP 403.9 - 禁止访问:连接的用户过多
  HTTP 403.10 - 禁止访问:配置无效
  HTTP 403.11 - 禁止访问:密码更改
  HTTP 403.12 - 禁止访问:映射器拒绝访问
  HTTP 403.13 - 禁止访问:客户证书已被吊销
  HTTP 403.15 - 禁止访问:客户访问许可过多
  HTTP 403.16 - 禁止访问:客户证书不可信或者无效
HTTP 403.17 - 禁止访问:客户证书已经到期或者尚未生效
404——没有发现文件、查询或URl
405——用户在Request-Line字段定义的方法不允许
406——根据用户发送的Accept拖,请求资源不可访问
407——类似401,用户必须首先在代理服务器上得到授权
408——客户端没有在用户指定的饿时间内完成请求
409——对当前资源状态,请求不能完成
410——服务器上不再有此资源且无进一步的参考地址
411——服务器拒绝用户定义的Content-Length属性请求
412——一个或多个请求头字段在当前请求中错误
413——请求的资源大于服务器允许的大小
414——请求的资源URL长于服务器允许的长度
415——请求资源不支持请求项目格式
416——请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包含If-Range请求头字段
417——服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求长。

2.3.2.5 5**:服务器执行一个完全有效请求失败
  HTTP 500 - 内部服务器错误
  HTTP 500.100 - 内部服务器错误 - ASP 错误
  HTTP 500-11 服务器关闭
  HTTP 500-12 应用程序重新启动
  HTTP 500-13 - 服务器太忙
  HTTP 500-14 - 应用程序无效
  HTTP 500-15 - 不允许请求 global.asa
  Error 501 - 未实现
HTTP 502 - 网关错误

响应头

这里写图片描述

Location:与302状态码配合使用,告诉客户找谁,可以实现请求重定向(应用:登录);
Server:告诉浏览器,服务器类型;
Content-Encoding:服务器通知浏览器,数据的压缩格式;
Content-length:告诉浏览器,会送数据的长度;
Content-type:告诉浏览器,会送数据的类型(如图片、文字); 类型:tomcat/conf/web.xml中有
Last-Modifited:告诉浏览器,当前资源的缓存时间;
Refresh:告诉浏览器,隔多长时间刷新访问一次资源(聊天室获取聊天信息,多长时间自动跳转到某页面);
Content-Disposition:告诉浏览器,以下载方式打开数据;
Transfer-Encoding:告诉浏览器,数据的传送格式;
ETag:缓存相关,该头用于信息的过期验证; 服务器为每个web资源的内容,生成一个标识符,内容更改,标识符也更改;每次客户机访问资源时,都会回写给其标识符;下次带着标识符访问,服务器将访问资源的标识符和客户机带来的标识符比较,判断服务器上的资源是否被改动过;没有改动过,服务器让浏览器直接从缓存中取,否则服务器给浏览器会送改动过的数据;ETag控制浏览器是否从缓存中取数据;
Expires:告诉浏览器,把回送的数据缓存多长时间,-1或0,则不缓存;
Cache-control:no-cache
Pragma:no-cache
以上2个头,告诉浏览器不缓存,实时性要求高的数据不缓存,比如股票;

缓存

HTTP协议分别在 1.0 / 1.1 两个时代推出了 Expires / Cache-control 两种cache策略;
Cache-control 是 HTTP 1.1 的新特性,Http1.0中没有该特征;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值