Tomcat7 Header 解析 源码分析

Tomcat7 Header 解析 源码分析,第1张

我们在上篇文章分析了http request line tomcat的解析。本文主要讲header 的解析

tomcat 默认对header的个数做了限制,通过maxHeaderCount 参数设置,默认

maxHeaderCount = 100

parseHeaders 是循环解析所有的header name 和value 对,并添加到

MimeHeaders 的headers 数组中,headers 数组的大小是maxHeaderCount,也就是100,

读到':' 时,就添加一个header 并返回value的引用,后面value 解析完后,直接设置headerData.headerValue 即可,headers.addValue() 会判断大小是否超过maxHeaderCount,如超过,则抛 headers.maxCountFail 错误。

headers 里存放的是MimeHeaderField,代表一个header,MimeHeaderField 有两个MessageBytes 类型的nameB和valueB,分别表示header name 和 header value

MessageBytes 只是对上篇讲到的httpinputbuffer的引用,并记录偏移量和长度。这样所有的header name 和value 都引用了tomcat input buffer,只是每一个的offset 和length 不一样而已。

是可能的。

可以配置maxHttpHeaderSize属性解决

给你个示例:

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" maxHttpHeaderSize="8192" />


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11240472.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存