http 基本知识

1、http请求的完整事务


2、URL:但部分组成,schema(方案)、服务器的位置、资源路径。方案://服务器位置/路径

方案规定了如何访问指定资源,告诉负责解析URL的应用程序应该使用什么样的协议。

片段:#

为了避开安全字符集表示法带来的限制,设计了一种编码机制,用来在url中表示各种不安全的字符。这种机制就是通过一种“转义”表示法来表示不安全字符的,这种转义表示法包含一个%,后面跟着两个表示字符ASCII嘛的十六进制数。

3、http报文的格式 - 起始行
请求报文:
响应报文:
响应状态码:在下面某个区间内的大致就是那个分类的意思

4、http报文的格式 - 首部
首部就是添加了一些附加的信息,一些名/值对的列表。
通用首部:即可以出现在请求报文中,也可以出现在响应报文中;

请求首部

响应首部

实体首部:描述主体的长度和内容,或资源本身
扩展首部:规范中没有定义的新首部

5、请求方法
head方法:类似于get,但是响应中只有首部,没有主体部分。使用head,可以再不获取资源的情况下了解资源的情况;通过查看响应中的状态码,看看某个对象是否存在;通过查看首部,测试资源是否被修改。

trace方法:允许客户端在最终将请求发送给服务器是,请求是否被修改。trace请求会在目的服务器端发起一个环回诊断响应,在响应主体中携带了请求的原始报文。【trace请求中不能带有实体的主体部分】

options方法:请求web服务器告知其支持的各种功能。可以询问服务器通常支持那些方法,或者对某些资源支持那些方法。


6、HTTp请求的性能


TCP连接的握手延时:小的HTTP事务节能会在YCP连接建立上花费50%,或跟多的时间。【重用现存连接,来减少这个建立连接的损耗】
延时确认:tcp实现了自己的确认机制来确保数据的成功传输,就是在每收到一个分组时,发送确认分组给发送者。发送者如果没有在指定的窗口时间内收到确认信息,就会重新发送数据。延时确认可以有效的利用互联网的流量,但是会照成时延,导致重发。
TCP慢启动:tcp为了防止网络的突然过载,实现了自我的协调,这样,新连接的传输速度会比已经交换过数据的连接要慢一些。

串行事务处理,tcp的性能延时是被叠加的,每个事务都建立一条新的连接,那么连接延时和慢启动延时就会被叠加起来。可以采用:
并行连接:通过多条tcp连接发起并发的http请求。

但是现实中,并行连接并不实际,首先打开大量的连接会很消耗资源,对客户端不利,对服务端也是很耗资源的。
持久连接:重用tcp连接,消除连接和关闭的延时。

初始化了对服务器http请求的应用程序大多会在不久又对这台服务器发起请求,这种性质被称为站点本地性。http1.1允许http设备在事务处理结束后将tcp连接保持在打开的状态,这就是持久连接。非持久连接会在每个事务结束后关闭,持久连接则会在不同事务之间保持打开状态,直到客户端或服务器决定关闭为止。
持久连接有两种类型:
->http/1.0+keep-alive连接:实现http/1.0 keep-alive连接的客户端可以通过包含connection:keep-alive首部请求将一条连接保持在打开状态。如果服务器愿意为下一条请求将连接保持在打开状态,就在响应中包含相同的首部;如果响应中没有connection:keep-alive首部,客户端就认为服务器不支持keep-alive,会在大会响应报文之后关闭连接。

keep-alive并不是默认使用的,客户端必须发送connection:keep-alive请求首部来激活keep-alive连接。
max是服务器还希望够为多少个事务保持此连接的活跃状态;timeout估计了服务器希望将连接保持在活跃状态的时间。

->http/1.1持久连接:http1.1持久连接在默认情况下是激活的,要结束持久连接,http1.1应用程序必须向报文中显示地添加一个connection:close首部。客户端除非在响应中包含了connection:close首部,否则http1.1连接就维持在打开的状态。
如果客户端想关闭持久连接,就在最后一条请求中发送一个connection:close请求首部。

管道化连接:通过共享的tcp连接发起并发的http请求。

这是在持久连接上的进一步优化,在响应到达之前,将多条请求放入到队列。当上一条请求达到服务端时,下面的请求就开始发送了,而不是等到响应才开始发送。
复用的连接:交替传送请求和响应报文。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTTP(HyperText Transfer Protocol)是一种用于在网络中传输超文本的协议。它是客户端和服务器之间进行通信的规则集。下面是一些HTTP协议的基础知识: 1. HTTP通信是无状态的:HTTP协议本身不保留任何关于先前请求或响应的信息。每个HTTP请求都是独立的,服务器不会记住之前的请求。 2. 请求方法:HTTP定义了不同的请求方法,常用的有GET、POST、PUT、DELETE等。GET用于获取资源,POST用于提交数据,PUT用于更新资源,DELETE用于删除资源。 3. URL:统一资源定位符(URL)是用于标识和定位资源的地址。它由协议类型(如http://)、主机名、可选的端口号、路径和查询参数组成。 4. 请求头:HTTP请求包含一些元数据,称为请求头。请求头包含了一些关于请求的附加信息,如User-Agent、Accept-Language等。 5. 响应状态码:HTTP响应包含一个状态码,用于表示请求的处理结果。常见的状态码包括200(成功)、404(未找到)和500(服务器内部错误)等。 6. 响应头:HTTP响应也包含一些元数据,称为响应头。响应头包含了一些关于响应的附加信息,如Content-Type、Content-Length等。 7. 实体:HTTP请求和响应中的有效载荷称为实体。通常,在请求中,实体是要发送给服务器的数据;在响应中,实体是服务器返回的数据。 这些是HTTP协议的一些基础知识,希望对你有帮助!如有更多问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值