HTTP协议

、HTTP协议定义

    HTTP是 Hyper Text Transfer Protocol(超文本传输协议)的缩写。HTTP 协议是用于从 WWW 服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。HTTP 是一种无状态的协议,无状态是指 Web 浏览器和 Web 服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后 Web 服务器返回响应(response),连接就被关闭了,在服务器端不保留连接的有关信息。HTTP 遵循请(Request)/应答(Response)模型。Web 浏览器向 Web 服务器发送请求,Web 服务器处理请求并返回适当的应答。

二、HTTP工作流程

1、建立TCP连接:在HTTP工作之前,Web浏览器首先要通过网络与Web服务器简历连接,该连接是通过TCP来完成的,HTTP是比TCP更高层次的协议,根据规则,只有低层协议建立之后才能进行更高层协议的连接。一般TCP连接的端口是80。

2、Web浏览器向Web服务器发送请求:TCP连接一建立,Web浏览器就会向Web服务器发送请求命令。

3、Web服务器发送请求头信息:发送请求命令之后,还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送一空白行来通知服务器已经结束了该头信息的发送。

4、Web服务器应答:发出请求后,服务器会向浏览器应答。

5、Web服务器发送应答头信息

6、Web服务器向浏览器发送数据:以Content-Type应答头信息所描述的格式发送用户所请求的实际数据。

7、Web服务器关闭TCP连接

三、HTTP请求方式

1、GET向特定的资源发出请求。

2、POST向指定资源提交数据进行处理请求,数据被包含在请求中。

3、PUT用于修改某个内容。

4、DELETE请求服务器删除Request-URI所标识的资源。

5、OPTIONS返回服务器针对特定资源所支持的HTTP请求方法。

6、HEAD向服务器索要与GET请求相一致的响应,响应体不会被返回。

7、TRACE回显服务器收到的内容。

四、HTTP状态响应码

1、1**:请求收到,继续处理。

100-----客户端必须继续发出请求

101-----客户端要求服务器根据请求转换HTTP协议版本

2、2**:操作成功收到,分析、接受。

200-----交易成功

201-----提示知道新文件的URL

202-----接受和处理、但处理未完成

203-----返回信息不确定或不完整

204-----请求收到,但返回信息为空

205-----服务器完成了请求,用户代理必须复位当前已经浏览过的文件

206-----服务器已经完成了部分用户的GET请求

3、3**:完成此请求必须进一步处理

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

307——申明请求的资源临时性删除

4、4**:请求包含一个错误语法或不能完成

400——错误请求,如语法错误
401——未授权
401.1-----未授权:登录失败
401.2-----未授权:服务器配置问题导致登录失败
401.3-----ACL 禁止访问资源
401.4-----未授权:授权被筛选器拒绝
401.5-----未授权:ISAPI 或 CGI 授权失败
402-----保留有效 ChargeTo 头响应
403-----禁止访问
403.1-----禁止访问:禁止可执行访问
403.2-----禁止访问:禁止读访问
403.3-----禁止访问:禁止写访问
403.4-----禁止访问:要求 SSL
403.5-----禁止访问:要求 SSL 128
403.6-----禁止访问:IP 地址被拒绝
403.7-----禁止访问:要求客户证书
403.8-----禁止访问:禁止站点访问
403.9-----禁止访问:连接的用户过多
403.10-----禁止访问:配置无效
403.11-----禁止访问:密码更改
403.12-----禁止访问:映射器拒绝访问
403.13-----禁止访问:客户证书已被吊销
403.15-----禁止访问:客户访问许可过多
403.16-----禁止访问:客户证书不可信或者无效
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 头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求长。

5、5**:服务器执行一个完全有效请求失败

500-----内部服务器错误
500.10-----内部服务器错误 - ASP 错误
500.11-----服务器关闭
500.12-----应用程序重新启动
500.13-----服务器太忙
500.14-----应用程序无效
500.15-----不允许请求 global.asa
501-----未实现
502-----网关错误

五、HTTP协议的主要特点
1.支持客户/服务器模式。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

六、HTTP有两类报文:

1、请求报文-----从客户向服务器发送请求报文

2、响应报文-----从服务器到客户的回答




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值