HTTP 协议简述

一、概念

HTTP(Hyper Text Transfer Protocol,中文译为超文本传输协议)是客户端发送请求与服务端响应请求的传输协议,是建立于 TCP(Transmission Control Protocol,中文译为传输层通信协议) 协议之上,面向应用层的协议。HTTP 协议的请求头与响应头的形式为 ASCII(American Standard Code for Information Interchange,中文译为美国信息交换标准代码),消息内容的形式类似 MIME(Multipurpose Internet Mail Extensions,中文译为多用途互联网邮件扩展)。HTTP默认端口号为80。它也可以承载在TLS和SSL之上,通过加密、认证的方式实现数据传输的安全,称为HTTPS,HTTPS默认端口号为443。

二、特点

  1. 支持客户端/服务端模型;
  2. 简单快速,客户端发送请求时,只需要发送请求方式和请求路径;
  3. 灵活,可以接受任意类型的传输对象;
  4. 无连接,客户端每次发送连接请求,服务端连接响应请求之后就断开连接,下次发送数据需要重新连接;
  5. 无状态,对事件的处理没有记忆能力,后续处理事务需要用到之前的信息需要重新发起请求。

三、发展阶段

  1. HTTP 09 协议(1991年)
    HTTP 09 协议是最基本最简洁的协议,只有 GET 方法。主要用于快速处理数据信息,回应 HTML 格式的字符串,不能回应别的格式,也处理不了图片信息。

  2. HTTP 1.0 协议(1996年)
    蒂姆·贝纳斯·李(TimBemers—Lee)提出了 HTTP1.0 。主要的功能体现在面向事务。该协议对每一次请求和响应都要建立连接,数据发送完成之后,便关闭连接。该协议简单、易于管理,符合大众需求。因此受到广泛使用。

    HTTP 1.0 不支持 Host 请求头字段,WEB 浏览器无法使用主机头名来明确表示要访问服务器上的哪个 WEB 站点,这样就无法使用 WEB 服务器在同一个 IP 地址和端口号上配置多个虚拟 WEB 站点。如果需要长连接,需要使用 keep-alive 参数来告知服务器端要建立一个长连接。

    HTTP 1.0 任何格式的内容都可以发送。这使得互联网不仅可以传输文字,还能传输图像、视频、二进制文件。这为互联网的大发展奠定了基础。

  3. HTTP 1.1 协议(1997年)
    HTTP 1.1 支持长连接,可有效减少TCP的三次握手开销,在一个 TCP 连接上可以传送多个 HTTP 请求和响应,减少了建立和关闭连接的消耗和延迟。

    HTTP 1.1 提供了与身份认证、状态管理和Cache缓存等机制相关的请求头和响应头。

    HTTP 1.1 支持只发送 header 信息(不带任何 body 信息),如果服务器认为客户端有权限请求服务器,则返回100,否则返回401。客户端如果接受到100,才开始把请求 body 发送到服务器。这样当服务器返回401的时候,客户端就可以不用发送请求 body 了,节约了带宽。

    HTTP 1.1 还支持传送内容的一部分。这样当客户端已经有一部分的资源后,只需要跟服务器请求另外的部分资源即可。这是支持文件断点续传的基础。

  4. HTTP 2.0 协议(2015年)
    HTTP 2.0 使用多路复用技术(Multiplexing)。多路复用允许同时通过单一的连接发起多重的请求与响应消息。以此更高效的使用 TCP 连接,得到性能上的提升。

    HTTP 2.0 新增首部压缩(Header Compression),采用 HPACK 算法。

    HTTP 2.0 新增服务端推送(Header Compression)。

四、应用场景

主要应用于 WEB 端的内容获取。从 WWW 服务器传输超文本到本地浏览器。它可以使浏览器更加高效,加快网络传输速度。HTTP 传输方式很灵活,不仅可以保证计算机快速地传输超文本文档,还可以确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形),也可以自定义传输那种类型的文本信息。

五、工作原理

HTTP 事务处理过程如下:

  1. 客户端发送连接请求;
  2. 服务端收到连接请求;
  3. 服务端发送数据;
  4. 客户数收到数据,关闭连接。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值