Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 请求大小与服务器负载_Performance_Http_Parsing_Httprequest_Conventions - Fatal编程技术网

Performance 请求大小与服务器负载

Performance 请求大小与服务器负载,performance,http,parsing,httprequest,conventions,Performance,Http,Parsing,Httprequest,Conventions,我正在编写如何组织HTTP请求中发送的查询参数的规范,并提出了以下建议: 所有参数a都以它们所属的实体为前缀,例如a.b,读取实体a的b,这样每个参数都会清晰地映射到相应的实体,但是如果有两个不同的实体共享一个查询参数呢?为了避免重复和请求大小,我提出了以下微格式。要拥有一个名为shared的请求范围实体,shared的每个属性将表示实体之间共享的属性,例如 POST /app/my/resource HTTP/1.1 a.p = v b.p = v c.p = v d.p = v 很明

我正在编写如何组织HTTP请求中发送的查询参数的规范,并提出了以下建议:

所有参数a都以它们所属的实体为前缀,例如a.b,读取实体a的b,这样每个参数都会清晰地映射到相应的实体,但是如果有两个不同的实体共享一个查询参数呢?为了避免重复和请求大小,我提出了以下微格式。要拥有一个名为shared的请求范围实体,shared的每个属性将表示实体之间共享的属性,例如


POST /app/my/resource   HTTP/1.1
a.p = v
b.p = v
c.p = v
d.p = v
很明显,属性p在a、b、c和d之间共享,因此可以将其作为

POST /app/my/resource HTTP/1.1
shared.p = a:b:c:d%v
现在,请求变小了,我变大了一点,但是这给服务器增加了额外的负担,因为它必须解析字符串来处理值


可能在我的示例中,差异是无关紧要的,我可以选择其中之一,但我想知道您对此有何看法,您更喜欢什么,可能请求的大小无关紧要,或者当长度较短时,字符串的解析没有什么大不了的,但是,当我们同时扩展请求和字符串的大小时,会发生什么情况?哪一个更好?权衡是什么?

简单地说,我认为答案将取决于后端服务器正在运行什么平台来处理请求。例如,上次我检查时,基于Perl的mod_Perl可以更快地解析这些字符串,比如ASP.NET。

您展示的是一个压缩算法。请注意,有效负载通常已经在协议层HTTP、gzip内容类型上压缩,请参阅。压缩算法足够先进,可以压缩重复的字符串项,所以定制压缩可能不会带来太多好处

通常不要过早地进行优化。首先显示您存在响应时间或有效负载大小问题,然后进行优化。您的压缩算法本身是一个好主意,但它使有效负载变得更加复杂,因为普通的键/值对是URL编码的内容类型。出于维护原因,应尽可能采用最简单的设计