12 Tomcat编码问题03 header部分
来源:互联网 发布:linux c 守护进程 编辑:程序博客网 时间:2024/06/01 08:05
前言
接着上一篇继续,这里要说的是关于header部分的编码的处理
header部分
首先看一下对于http header部分的获取
AbstractHttp11Processor. process
InternalInputBuffer. parseHeaders
InternalInputBuffer. parseHeader
MimeHeaders. addValue
MimeHeaders. createHeader
MimeHeaders.addValue 创建了一个header并添加到当前对象的headers集合中, 将传入的数据[bytes, off, len]作为key, 返回了创建的header的value, 用于之后配置value
然后 我们再来看看servlet中获取hader的方法吧
org.apache.catalina.connector.Request. getHeader
Request. getHeader
MimeHeaders. getHeader
MimeHeaders. getValue
那么问题来了, InternalInputBuffer.headers 是怎么和requst. headers关联起来的呢
InternalInputBuffer. InternalInputBuffer
然后 在InternalInputBuffer中并没有对headers做其他的操作
然后 我们再来看看可能通过Request中对于headers进行的可能的操作吧
绿色箭头对应的操为只读操作, RemoteIpValve对应的操作为对”X-Forwarded-By”, “X-Forwarded-For”的操作, FormAuthenticator的逻辑我不了解
红框部分为刚才对于headers的解析, 其余的几个为与InternalInputBuffer的”平行”的逻辑
因此 一眼望去似乎 是对于header没有特别的解码操作,, 那么 真的对吗 ?
以目前我能看到的来看, 似乎 是没有, 因此 是以默认的iso8859-1进行解码的[MessageBytes.toString], 如果 需要向header中传入中文, 则需要以给定的编码编码之后, 发送到服务端, 然后服务端进行对应的解码, 即得到了所需的header
对于编码问题, 推荐一本书”深入分析Java Web技术内幕”[许宁波著], 关于编码问题的这一章是第三章, 反正 我以前看过之后 是感觉非常有收获的
然后 还有一个问题, 又重新看了一下”3.4 JavaWeb中涉及的编解码”, 我感觉 我这里的分析 和这本书上面的描述, 有两处存在冲突的地方, 第一 是关于pathInfo部分的编码问题, 第二 是关于查询字符串的编码问题
现在先放在这里吧
完
参考
http://www.xuebuyuan.com/1287083.html
http://www.cnblogs.com/chenssy/p/4220400.html
“深入分析Java Web技术内幕”[许宁波著]
- 12 Tomcat编码问题03 header部分
- 12 Tomcat编码问题01 pathInfo部分
- 12 Tomcat编码问题02 queryString 和postData部分
- 部分编码问题
- tomcat 编码问题
- tomcat 编码问题
- tomcat编码格式问题
- tomcat编码问题
- Tomcat中的编码问题
- tomcat url 编码问题
- tomcat编码乱码问题
- tomcat编码乱码问题
- tomcat 编码问题
- tomcat 编码问题
- Tomcat编码问题
- tomcat jdk编码问题
- Tomcat的编码问题
- Tomcat编码问题
- Mac上搭建基于GitHub的Hexo博客 (亲测可用)
- 自定义控件实现ListView下拉刷新和上拉加载
- 计算机网络基础(二)
- 树的子结构
- VC提升进程权限
- 12 Tomcat编码问题03 header部分
- 在安卓开发中使用正则表达式,高效率开发
- 线性顺序表
- Java基础语法总结
- [LeetCode] 126. Word Ladder II
- POJ 3414 Pots【BFS】
- 老罗的获奖感言及经验转载
- 深入分析ArrayBlockingQueue
- Binary Search Tree Iterato