x1184的小站
x1184的小站
HTTP协议-概述
HTTP协议-概述

超文本传输协议(英语:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。

设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。

HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的RFC,其中最著名的是1999年6月公布的 RFC 2616,定义了HTTP协议中现今广泛使用的一个版本——HTTP 1.1。
 
2014年12月,互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis(httpbis)工作小组将HTTP/2标准提议递交至IESG进行讨论[2],于2015年2月17日被批准。HTTP/2标准于2015年5月以RFC 7540正式发表,取代HTTP 1.1成为HTTP的实现标准。

关于其标准定义,修订历史和相关组织

HTTP使用的是可靠的数据传输协议(底层由TCP协议负责传输保障),即使数据来自地球的另一端,对于开发人员来说,也无需担心通信再传输过程中损坏或产生畸变,开发时可以把精力更多的放在接口实现和更多细节上。

几个基本概念

Web应用程序

客户端

客户端发送请求并接收相应的回应 从大的概念来说,客户端有两类,有web客户端和独立客户端(对应软件架构中的B/S模式和C/S模式)。其中web客户端就是我们了解的各类浏览器(浏览器是用来显示在万维网或局域网等内的文字、图像及其他信息的软件,它还可以让用户与这些文件进行交互操作。)

浏览器按照内核划分就是主流的Trident,Gecko,Webkit,Blink,分别对应着IE,Firefox,Safari,Chrome 这些都属于web客户端,实现功能的方式都是依据http协议发起请求接收请求后再按照自己的机制和实现将资源解析呈现。

https://ae01.alicdn.com/kf/H6777f149411d42b1816e892d336915c3K.jpg
以chrome浏览器访问手机端百度页面为例

独立客户端相对web客户端充分利用硬件设施,避免资源的浪费,同时可为服务器分担一些逻辑事务,进行数据处理和数据存储。同时也可处理复杂的事务流程。但缺点是只能处理一些功能单一的多系统。C/S架构适用于局域网客户端界面缺乏通用性,且当业务更改时就需要更改界面,重新编写 。

服务端

Web内容存储在服务器上,其中对于主要使用HTTP协议传输信息的,称作HTTP服务器。服务端这个概念比较大,这里实际上指的是服务器软件,既不是服务端开发语言或开发框架(PHP和Flask)也不是中间接口层(WSGI或CGI或handler程序),而是只负责接受请求,处理请求,返回请求的软件(Apache和Nginx 和Tomcat)

HTTP完成传输就是建立在这两个基本概念之上的,除此之外,一个应用的正常http连接过程可能还需要服务端逻辑语言或客户端逻辑语言或标记语言参与其中,在这个方面上不同的应用场景有不同的实现,比如Js异步通信Ajax,Python爬虫requests,Servlet结合jsp处理请求等。

https://ae01.alicdn.com/kf/H8694d1864dc546e2987d1412aa16e9a7G.jpg
Ajax异步通信时过程
https://ae01.alicdn.com/kf/H21657d66fd844fbc804422aea16ce8f4H.jpg
Servlet中客户端服务端中间件的通信

区别:传输时角色不同,一个侧重于请求并解释信息,一个侧重于提供并储存信息一个侧重于用户交互,一个负责存储和逻辑和计算,一般是各自有各自分工的

联系:HTTP传输需要两者结合

https://ae01.alicdn.com/kf/H81ab39c360e34be88a72be82961e4d7bJ.jpg
请求时一个简明的流程图
赞赏
欢迎留言交流讨论,留言必回。

admin

文章作者

一个平凡的追梦人

发表评论

textsms
account_circle
email

x1184的小站

HTTP协议-概述
HTTP使用的是可靠的数据传输协议(底层由TCP协议负责传输保障)
扫描二维码继续阅读
2019-11-10