博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Http(1)
阅读量:5018 次
发布时间:2019-06-12

本文共 1720 字,大约阅读时间需要 5 分钟。

网关:是一种特殊的服务器,作为其他服务器的中间实体使用;

Agent代理:所有发布web请求的应用程序都是HTTP Agent代理。Web浏览器其实就是一种代理;

HTTP报文是在HTTP应用程序之间发送的数据块;

Http报文的组成部分:对报文进行描述的起始行(start line)、包含属性的首部(header)块,以及可选的、包含数据的主体(body)部分;

Http TRACE方法:允许客户端在最终将请求发送给服务器时,看看它变成了什么样子;

Http OPTIONS方法:请求Web服务器告知其支持的各种功能。可以询问服务器通常支持哪些方法,或者对某些特殊资源支持哪些方法;

扩展方法:HTTP被设计成字段可扩展的。扩展方法指的是没有再HTTP/1.1规范中定义的方法。服务器会为它所管理的资源实现一些HTTP服务,这些方法为开发者提供了一种扩展这些HTTP服务能力的手段。

状态码100:Http客户端应用程序有一个实体的主体部分要发送给服务器,但希望在发送之前查看一下服务器是否会接受这个实体。

代理请求首部:

Max-Forward:在通往源端服务器的路径上,将请求转发给其他代理或网关的最大次数--与Track方法一同使用;

Proxy-Authorization 与Authorization首部相同,但这个首部是在与代理进行认证时使用的;

Proxy-Connection:与Connection首部相同,但这个首部是在与代理建立连接时使用的

 

连接管理

Http的优化,包括并行连接、keep-alive(持久连接)和管道化连接,世界上几乎所有的HTTP通信都是由TCP/IP承载的

TCP的数据是通过名为IP分组(或IP数据块)的小数据块来发送的,其安全版本HTTPS就是在HTTP和TCP之间插入了一个(称为TSL或SSL)密码加密层

每个IP分组中都包括:

一个IP分组首部(通常为20字节)

一个TCP段首部(通常为20字节)

一个TCP数据块(0个或多个字节)

 

TCP实现了自己的确认机制来确保数据的成功传输

每个TCP段都有一个序列号和数据完整性校验和。每个段的接受者收到完好的段时,都会向发送者回送小的确认分组。如果发送者没有在指定的窗口时间内收到确认信息,发送者就认为分组已被破坏或损毁,被重发数据。

TCP慢启动

TCP数据传输的性能还取决于TCP连接使用期。TCP连接会随着时间进行自我“调谐”,期初会限制连接的最大速度,如果数据成功传输,会随着时间的推移提高传输的速度。这种调谐称为TCP慢启动,用于防止因特网的突然过载和拥塞。

四种方法提高HTTP连接的性能:

并行连接:通过多条TCP连接发起并发的HTTP请求。

持久连接:重用TCP连接,以消除连接及关闭时延;

      在事务处理结束之后仍然保持在打开状态的TCP连接被称为持久连接。非持久连接会在每个事务结束之后关闭。持久连接会在不同事务之间保持打开状态,直到客户端或服务器决定将其关闭为止。

      重用已对目标服务器打开的空闲持久连接,就可以避开缓慢的连接建立阶段。而且已经打开的连接还可以避免慢启动的拥塞适应阶段,以便更快速的进行数据的传输。持久连接有两种类型:比较老的HTTP/1.0+"keep-alive"  连接,以及现代的HTTP/1.1 "persistent"   

管道化连接:通过共享的TCP连接发起并发的HTTP请求;

      HTTP/1.1允许在持久连接上可选的使用请求管道,这是相对于keep-alive连接的又一次性能优化。在响应达到之前,可以将多条请求放入队列。当第一条请求通过网络流向地球另一端的服务器时,第二条和第三条请求也可以开始发送了。在高时延网络条件下,这样做可以降低网络的环回时间,提高性能。

      如果http客户端无法确认连接是持久的,就不应该使用管道。

      必须按照与请求相同的顺序回送HTTP响应。HTTP报文中没有序列号标签,因此如果收到的响应失序了,就没办法将其与请求匹配起来了。

复用的连接:交替传送请求和响应

转载于:https://www.cnblogs.com/cby-love/p/9452616.html

你可能感兴趣的文章
HDU 5130 Signal Interference(计算几何 + 模板)
查看>>
实验五
查看>>
前端面试题笔记
查看>>
SpringBoot | 第二十九章:Dubbo的集成和使用
查看>>
Entity Framework 6 预热、启动优化
查看>>
理解 JavaScript 中的 Function.prototype.bind
查看>>
mysql 大文件导入导出
查看>>
*** + Polipo 配置全局代理(Linux 版本)
查看>>
MD5--3D模型
查看>>
“云时代”solo模式的网站创建
查看>>
Windows 内核(WRK)简介
查看>>
6.1.2.1 html-head相关的标签
查看>>
【C++】如何利用直方图实现快速中值滤波
查看>>
poj3678 Katu Puzzle
查看>>
最小的镜像 - 每天5分钟玩转容器技术(9)
查看>>
STORJ 有实际应用
查看>>
#pragma arm section说明
查看>>
Jzoj3906 魏传之长坂逆袭(梦回三国系列)
查看>>
【面向对象设计与构造】第一次博客作业
查看>>
Unity3D_(数据)JsonUtility创建和解析Json
查看>>