HTTP协议

HTTP协议

HTTP协议
超文本传输协议,是用于从www服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示等。
HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。
HTTP协议通常承载于TCP协议之上,有时也承载于TLSSSL协议层上,这个就是HTTPS协议。
TLS(Transport Layer Security)
传输层安全协议,用于两个应用程序之间提供保密性和数据完整性,该协议由两层协议组成,分别是TLS记录协议和TLS握手协议。
SSL(Security Socket Layer)
安全套接字层,用于可靠的面向连接的网络层和应用层协议之间的协议层,通过互相认证、数字签名确保完整性,使用加密确保私密性,保证了服务器和客户端之间安全的数据通信。由SSL记录协议和SSL握手协议组成。
HTTP的端口号为80,HTTPS的端口号为443。

HTTP的请求响应模型

HTTP协议永远都是客户端发起请求,服务器回送响应。
HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。

工作流程

①首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。
②建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
③服务器接到请求后,给予相应的响应信息,其格式是一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
④客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。
如果在以上过程中的某一步出现错误,那么产生错误的信息将返回客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。

头域

每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。

host头域

Host头域指定请求资源的Internet主机和端口号,必须表示请求URL的原始服务器或网关的位置。HTTP/1.1请求包含主机头域,否则系统会以400状态码返回。

HTTP请求消息

请求消息格式

请求行
通用信息头|请求头|实体头
CRLF(回车换行)
实体内容
其中“请求行”为:请求行 = 方法 [空格] 请求URI[空格] 版本号 [回车换行]
例子1
GET /index.html HTTP/1.1
例子2
POST http://192.168.2.217:8080/index.jsp HTTP/1.1

请求方法

GET 申请获取资源,而不对服务器产生任何其他影响
HEAD 和GET方法类似,不过仅要求服务器返回头部信息,而不需要传输任何实际内容
POST 客户端向服务器提交数据的方法。这种方法会影响服务器:服务器可能会根据收到的数据动态创建新的资源,也可能更新原有的资源。
PUT 上传某个资源
DELETE 删除某个资源
TRACE 要求目标服务器返回原始HTTP请求的内容,它可用来查看中间服务器(比如代理服务器)对HTTP请求的影响
OPTIONS 查看服务器对某个特定URL都支持哪些请求方法。也可以把URL设置为*,从而获得服务器支持的所有请求方法
CONNECT 用于某些代理服务器,它们能把请求的连接转化为一个安全隧道
PATCH 对某个资源做部分修改。

HTTP应答

响应消息格式

状态行
通用信息头|响应头|实体头
CRLF
实体内容
其中:状态行 = 版本号 [空格] 状态码 [空格] 原因 [回车换行]
例子1
HTTP/1.0 200 OK
例子2
HTTP/1.1 400 Bad Request

状态响应码
1**:请求收到,继续处理

100—客户必须继续发出请求
101—客户要求服务器根据请求转换HTTP协议版本

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

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

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

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

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

400—错误请求,如语法错误
401—未授权
402—保留有效ChargeTo头响应
403—禁止访问
404—没有发现文件、查询或URL
405—用户在Request-line字段定义的方法不允许
407—客户端需要先获得代理服务器的认证

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

500—内部服务器错误
501—未实现
502—网关错误
503—暂时无法访问服务器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值