http

发布时间 2023-04-06 12:35:10作者: 小头痛

HTTP 工作原理

HTTP 协议工作于客户端-服务端架构上。

浏览器作为 HTTP 客户端通过 URL 向 HTTP 服务端即 WEB 服务器发送所有请求。

HTTP 三点注意事项:

  • HTTP 是无连接:无连接的含义是限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接,采用这种方式可以节省传输时间。

  • HTTP 是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送,客户端以及服务器指定使用适合的 MIME-type 内容类型。

  • HTTP 是无状态:HTTP 协议是无状态协议,无状态是指协议对于事务处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大,另一方面,在服务器不需要先前信息时它的应答就较快。

HTTP 消息结构

HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。

一个HTTP"客户端"是一个应用程序Web浏览器或其他任何客户端),通过连接到服务器达到向服务器发送一个或多个HTTP的请求的目的。

一个HTTP"服务器"同样也是一个应用程序(通常是一个Web服务,如Apache Web服务器或IIS服务器等),通过接收客户端的请求并向客户端发送HTTP响应数据。

HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。

一旦建立连接后,数据消息就通过类似Internet邮件来传送。

我的理解:

1.客户端是一个应用程序(qt软件应用程序,浏览器等等)

2.http使用统一资源标识符URI来建立连接+传输数据 

URI URL的联系与区别   

URL

URL:(全称:Uniform Resource Locator)统一资源定位符。

它是一种表示,是互联网上标准资源的地址。  通过URL对互联网上的资源进行访问。

URL 的常见定义格式为:带方括号[]的为可选项

scheme://host[:port#]/path/…/[;url-params][?query-string][#anchor]

scheme //协议 有我们很熟悉的http、https、ftp以及著名的ed2k,迅雷的thunder等。
host   //HTTP服务器的IP地址或者域名
port#  //HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明,
例如tomcat的默认端口是8080  http://localhost:8080/
path   //访问资源的路径
url-params  //所带参数 
query-string    //发送给http服务器的数据
anchor //锚点定位

URL的格式一般由下列三部分组成:

  1. 协议(或称为服务方式);
  2. 存有该资源所在的服务器的名称IP地址(包括端口号);
  3. 主机资源的具体地址。具体地址!!!
URL:  http://127.0.0.1:8080/webProject/index.html 

URI

URI:(全称:Uniform Resource Identifier)统一资源标识符,它是一个字符串用来标示抽象或物理资源。

URL,URI关系

URI 属于 URL 更高层次的抽象,一种字符串文本标准。就是说,URI 属于父类,而 URL 属于 URI 的子类。uri是理论或者说规范,url是按照规范的具体实现(从定义上其实更类似于接口与对应实现类的概念)

可以这样理解URI表示的是一个抽象的地址,URL表示的是一个详细的地址。
抽象的地址:湖南省长沙市(这是一个抽象的地址,相当于URI)
详细的地址:湖南省长沙市雨花区香樟路22号(这是一个详细的地址,相当于URL)
为什么URL是URI的子集,雨花区的香樟路22号(URL)属于湖南省长沙市(URI),
那么放到web上  网页链接是一个URI(它只说明了服务器的地址,没有具体到文件是什么类型)
那么 网页链接就是一个URL(他具体到了logo文件的位置并且logo文件是gif类型的)
这样一来URL和URI的区别就很清晰了

参考: URI和URL的区别比较与理解_风一样的美代码的博客-CSDN博客 的评论区

参考:URL与URI,有联系有区别? - 知乎 (zhihu.com)

URI、URL和URN的区别 - 知乎 (zhihu.com)这个讲的最好最通俗易懂!!!

3.

 

参考:HTTP 教程 | 菜鸟教程 (runoob.com)