CN112187858B - 一种匹配管线式http请求与响应的方法 - Google Patents
一种匹配管线式http请求与响应的方法 Download PDFInfo
- Publication number
- CN112187858B CN112187858B CN202010853859.2A CN202010853859A CN112187858B CN 112187858 B CN112187858 B CN 112187858B CN 202010853859 A CN202010853859 A CN 202010853859A CN 112187858 B CN112187858 B CN 112187858B
- Authority
- CN
- China
- Prior art keywords
- response
- http request
- http
- pipeline
- transmission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种匹配管线式http请求与响应的方法,包括:管线式http对向服务器发送的http请求采用独立的Transmission Id进行动态标识;服务器识别http请求的Transmission Id并回写入响应头中;管线式http根据通过CRLF、配合content‑length及chunked响应头从服务器返回的响应流中提取独立的响应头;提取的独立响应头与http请求通过Transmission Id进行匹配。
Description
技术领域
本发明涉及数据传输领域,尤其涉及一种匹配管线式http请求与响应的方法。
背景技术
http请求方式包括传统响应式http请求方式和管线式http请求方式两种,传统响应试http请求方式受head of line blocking(队头阻塞)约束,性能极限受到限制。在需要短时间大量请求的压力测试场景下,不能很好发挥测试终端全部性能。为减少等待,传统测试手段会使用多开线程等异步手段,但是单条链路依然无法避免等待,为了尽可能加压会使用更多系统线程,导致上下文切换过于频繁,大多数情况并不能充分利用带宽,测试设备就已经性能不足。
因此http1.1提出了管线化(pipelining)技术,一次性发送多个request请求实现对应用服务的高性能测试。然而现有管线式http请求方式难以将请求与响应精确匹配,响应失败的请求也无法正确区分,在非幂等请求的测试场景下几乎无法应用。并且由于无法有效准确匹配响应,导致响应耗时等重要数据无法准确统计,难以数据化衡量测试结果。
发明内容
本发明要解决的技术问题,在于提供一种匹配管线式http请求与响应的方法,解决现有管线式http请求方式难以将请求与响应精确匹配,无法正确区分响应失败的请求的技术问题。
为实现上述目的,本发明采用下述技术方案:
一种匹配管线式http请求与响应的方法,所述方法包括:
管线式http对向服务器发送的http请求采用独立的Transmission Id进行动态标识;
服务器识别所述http请求的Transmission Id并回写入响应头中;
管线式http根据通过CRLF、配合content-length及chunked响应头从服务器返回的响应流中提取独立的响应头;
提取的独立响应头与http请求通过Transmission Id进行匹配。
作为优选,所述方法还包括:
针对不含有TransmissionId的独立响应头的响应流,根据响应流的提取顺序与剩余的http请求进行顺序匹配。
作为优选,所述方法还包括:
对管线式http中每一条pipeline的响应流中每个响应分段标记时间戳,并通过协议解析识别其中的有效时间戳;
标记每一条pipeline中每一条http请求的开始时间值,其中,记录http请求的最后一个字节推入网卡的时间为每一条http请求的开始时间值;
标记每一条pipeline接收到的每一条响应流的结束时间值,其中,将一个响应流的一组数据段中的第一个有效时间戳记为该响应流的结束时间值;
根据响应流的结束时间值与匹配的http请求的开始时间值计算请求的响应时间。
本发明的有益效果是:本发明提供了一种匹配管线式http请求与响应的方法,一是在不修改应用服务的情况下同时为管线式http请求及响应添加TransmissionId,实现管线式http请求与响应的精准匹配;二是通过对返回的每一条响应流进行实时的时间戳标记,能够计算出http请求精确的响应时延,提高了管线式http请求方法的测试精确度。
附图说明
图1为本发明提供的一种匹配管线式http请求与响应的方法的流程示意图;
图2为本发明提供的一个示例中获取管线式http请求精确响应时间的流程示意图。
具体实施方式
下面通过具体实施例,并结合附图,对本发明的技术方案作进一步的具体描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前http1.1提出了管线化(pipelining)技术,一次性发送多个request请求实现对应用服务的高性能测试。然而现有管线式http请求方式难以将请求与响应精确匹配,响应失败的请求也无法正确区分,在非幂等请求的测试场景下几乎无法应用。并且由于无法有效准确匹配响应,导致响应耗时等重要数据无法准确统计,难以数据化衡量测试结果。
为了能够解决现有管线式http请求方式难以将请求与响应精确匹配,无法正确区分响应失败的请求的技术问题,本发明实施例提供一种匹配管线式http请求与响应的方法。
以下结合附图,详细说明本发明中各实施例提供的技术方案。
一种匹配管线式http请求与响应的方法,如附图1所示,所述方法包括:
S101,管线式http对向服务器发送的http请求采用独立的Transmission Id(传输线Id)进行动态标识;
针对步骤S101,管线式http对每一条向服务器发送的http请求报文均采用独立的Transmission Id(传输线Id)进行动态标识。
S102,服务器识别所述http请求的Transmission Id(传输线Id)并回写入响应头中;
针对步骤S102,服务器识别每一条http请求报文中的Transmission Id(传输线Id),并将每个Transmission Id(传输线Id)回写入该条http请求报文的响应流的响应头中;
S103,管线式http根据通过CRLF(Carriage Return&Linefeed,回车并换行)、配合content-length(响应的长度)及chunked(分块传输)响应头从服务器返回的响应流中提取独立的响应头;
针对步骤S103,接收到服务器返回的响应流后,管线式http通过对响应流进行CRLF(Carriage Return&Linefeed,回车并换行)、配合content-length(响应流的长度)及chunked(分块传输)响应头从服务器返回的响应流中提取独立的响应头。
例如,服务器返回的响应流的content-length为100,解析响应流中的响应实体100后并以CRLFCRLF标记结束;或Transfer-Encoding为chunked通过解析实体动态响应块长度,最后一块以0x00 CRLFCRLF结束,对上述解析完成的响应提取Transmission Id的响应头作为独立的响应头,并与请求匹配。
S104,提取的独立响应头与http请求通过Transmission Id进行匹配。
针对步骤S104,根据独立响应头的Transmission Id与http请求的TransmissionId进行匹配,获得匹配结果,将匹配成功的独立响应头的响应流标记为http请求的响应对象。
在一个示例中,所述方法还包括:针对不含有TransmissionId的独立响应头的响应流,根据响应流的提取顺序与剩余的http请求进行顺序匹配。
可以理解,针对部分或全部响应流的独立响应头不含有TransmissionId的时候,在含有TransmissionId的独立响应头的响应流匹配结束后,根据提取不含有TransmissionId的独立响应头的顺序,将不含有TransmissionId的独立响应头的响应流与剩余的http请求按照提取顺序进行匹配。
在一个示例中,如附图2所示,所述方法还包括:
S201,对管线式http中每一条pipeline的响应流中每个响应分段标记时间戳,并通过协议解析识别其中的有效时间戳;
S202,标记每一条pipeline中每一条http请求的开始时间值;
其中,记录http请求的最后一个字节推入网卡的时间为每一条http请求的开始时间值。
S203,标记每一条pipeline接收到的每一条响应流的结束时间值;
其中,将一条响应流的一组数据段中的第一个有效时间戳记为该响应流的结束时间值。
S204,根据响应流的结束时间值与匹配的http请求的开始时间值计算请求的响应时间。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,这些均属于本发明的保护范围之内。
Claims (1)
1.一种匹配管线式http请求与响应的方法,其特征是,所述方法包括:
管线式http对向服务器发送的http请求采用独立的Transmission Id进行动态标识;
服务器识别所述http请求的Transmission Id并回写入响应头中;
管线式http根据通过CRLF、配合content-length及chunked响应头从服务器返回的响应流中提取独立的响应头;
提取的独立响应头与http请求通过Transmission Id进行匹配;
针对不含有TransmissionId的独立响应头的响应流,根据响应流的提取顺序与剩余的http请求进行顺序匹配;
对管线式http中每一条pipeline的响应流中每个响应分段标记时间戳,并通过协议解析识别其中的有效时间戳;
标记每一条pipeline中每一条http请求的开始时间值,其中,记录http请求的最后一个字节推入网卡的时间为每一条http请求的开始时间值;
标记每一条pipeline接收到的每一条响应流的结束时间值,其中,将一个响应流的一组数据段中的第一个有效时间戳记为该响应流的结束时间值;
根据响应流的结束时间值与匹配的http请求的开始时间值计算请求的响应时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010853859.2A CN112187858B (zh) | 2020-08-24 | 2020-08-24 | 一种匹配管线式http请求与响应的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010853859.2A CN112187858B (zh) | 2020-08-24 | 2020-08-24 | 一种匹配管线式http请求与响应的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112187858A CN112187858A (zh) | 2021-01-05 |
CN112187858B true CN112187858B (zh) | 2023-04-18 |
Family
ID=73925735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010853859.2A Active CN112187858B (zh) | 2020-08-24 | 2020-08-24 | 一种匹配管线式http请求与响应的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112187858B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101291324A (zh) * | 2007-04-16 | 2008-10-22 | 三星电子株式会社 | 使用超文本传输协议的通信方法和设备 |
CN102065143A (zh) * | 2010-12-21 | 2011-05-18 | 华为技术有限公司 | 基于http的通信方法及系统、http服务器、http客户端 |
CN102752320A (zh) * | 2012-08-03 | 2012-10-24 | 北京光泽时代通信技术有限公司 | 一种代理服务器主动压缩方法及代理服务器 |
CN104780182A (zh) * | 2014-01-09 | 2015-07-15 | 中国科学院声学研究所 | HTTP chunked编码和IP包封装、解析方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10740266B2 (en) * | 2017-11-17 | 2020-08-11 | Intel IP Corporation | Sensor data pipelining |
-
2020
- 2020-08-24 CN CN202010853859.2A patent/CN112187858B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101291324A (zh) * | 2007-04-16 | 2008-10-22 | 三星电子株式会社 | 使用超文本传输协议的通信方法和设备 |
CN102065143A (zh) * | 2010-12-21 | 2011-05-18 | 华为技术有限公司 | 基于http的通信方法及系统、http服务器、http客户端 |
CN102752320A (zh) * | 2012-08-03 | 2012-10-24 | 北京光泽时代通信技术有限公司 | 一种代理服务器主动压缩方法及代理服务器 |
CN104780182A (zh) * | 2014-01-09 | 2015-07-15 | 中国科学院声学研究所 | HTTP chunked编码和IP包封装、解析方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112187858A (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6738349B1 (en) | Non-intrusive measurement of end-to-end network properties | |
CN101680775B (zh) | 经由网络读取公用事业仪表数据的方法及系统 | |
CN107181675A (zh) | 服务调用方法及装置 | |
CN102045222B (zh) | 网络系统实时整体测试的方法 | |
CN101627579B (zh) | 用于基于所测得的带宽来选择用于数据传输的格式的策略 | |
EP2266339B1 (en) | Measuring performance of wireless packet communication | |
US20130166738A1 (en) | Web Page Download Time Analysis | |
CN112954434B (zh) | 字幕处理方法、系统、电子设备和存储介质 | |
CN109561300B (zh) | 业务质量检测方法及装置 | |
CN101719867B (zh) | 一种包交换网络中的时钟恢复方法及系统 | |
CN111327471A (zh) | 网络质量分析方法、装置、计算机设备及存储介质 | |
JP6574031B2 (ja) | モバイル映像通話品質測定方法およびシステム | |
AU2004222994A1 (en) | Method for evaluating the bandwith of a digital link | |
CN110995566A (zh) | 一种消息数据推送方法、系统及装置 | |
CN108234345A (zh) | 一种终端网络应用的流量特征识别方法、装置和系统 | |
CN112187858B (zh) | 一种匹配管线式http请求与响应的方法 | |
CN109922081A (zh) | 一种tcp流长连接数据分析方法 | |
CN109981550B (zh) | 一种游戏业务质量评估方法及装置 | |
CN103338131A (zh) | 检测日志传输丢失率的方法和设备 | |
EP4099323A3 (en) | Packet loss recovery method for audio data packet, electronic device and storage medium | |
CN109347671B (zh) | 一种在芯片中实现带内OAM Metadata编辑的系统及方法 | |
CN108390794B (zh) | 一种流媒体数据丢包率的计算方法及系统 | |
CN116781975B (zh) | 一种媒体流检测方法、装置、终端设备和存储介质 | |
CN110781034A (zh) | 分布式监管方法和系统 | |
CN111372073A (zh) | 视频质量的评价方法、装置、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |