netty http客户端从web服务器获取消息遇到的HttpChunk问题
有时候,Web服务器生成HTTP Response是无法在Header就确定消息大小的,这时一般来说服务器将不会提供Content-Length的头信息,而采用Chunked编码动态的提供body内容的长度。
进行Chunked编码传输的HTTP Response会在消息头部设置:
Transfer-Encoding: chunked
表示Content Body将用Chunked编码传输内容。
这样会导致 netty http客户端接收到多次返回消息,第一次消息类型是HttpResponse,后面消息类型是HttpChunk
对于每种消息都需要根据类型完成消息Decode,http的结构状态在HttpResponse消息中,
一定要处理后续的HttpChunk消息,重要!!!
遇到这个问题处理了很久,这里记录下!
netty http客户端从web服务器获取消息遇到的HttpChunk问题的更多相关文章
- web服务器获取请求客户端真实地址的方法
		
服务器获取客户端或者网页的请求,获取IP时需要注意,因为一个请求到达服务器之前,一般都会经过一层或者多层代理服务器,比如反向代理服务器将http://192.168.1.10:port/ 的URL反向 ...
 - 使用Vert.x构建Web服务器和消息系统
		
如果你对Node.js感兴趣,Vert.x可能是你的下一个大事件:一个建立在JVM上一个类似的架构企业制度. 这一部分介绍Vert.x是通过两个动手的例子(基于Vert.x 2.0). 当Node.j ...
 - 借助form表单向web服务器发送消息
		
form表单是常用的,在网页浏览器中 用户点击的请求经htto协议发送回web容器,请求处理 建立用户的页面 <!DOCTYPE html> <html> <head&g ...
 - android 从服务器获取新闻数据并显示在客户端
		
新闻客户端案例 第一次进入新闻客户端需要请求服务器获取新闻数据,做listview的展示, 为了第二次再次打开新闻客户端时能快速显示新闻,需要将数据缓存到数据库中,下次打开可以直接去数据库中获取新闻直 ...
 - HTTP架构介绍(1)  Web服务器和代理服务器
		
HTTP应用协议本身是不能运行的,它需是需要架构在硬件和软件解决方案上,才能在万维网上提供高效的传输服务. 在这系列的文章中,我们将会了解到以下概念: Web服务器 代理服务器 缓存 网关.信道和中继 ...
 - 【 Linux 】I/O工作模型及Web服务器原理
		
一.进程.线程 进程是具有一定独立功能的,在计算机中已经运行的程序的实体.在早期系统中(如linux 2.4以前),进程是基本运作单位,在支持线程的系统中(如windows,linux2.6) ...
 - java实现简单web服务器(分析+源代码)
		
在日常的开发中,我们用过很多开源的web服务器,例如tomcat.apache等等.现在我们自己实现一个简单的web服务器,基本的功能就是用户点击要访问的资源,服务器将资源发送到客户端的浏览器.为了简 ...
 - 第五章、web服务器
		
一.web服务器 Web服务器就是整个万维网的骨干,广义上来说Web服务器既可以用来表示Web服务器的软件,也可以用来表示提供Web页面的特定设备和计算机.我们在网络上获取的所以资源,都需要有服务器来 ...
 - [阿里云部署] Ubuntu+Flask+Nginx+uWSGI+Mysql搭建阿里云Web服务器
		
部署地址:123.56.7.181 Ubuntu+Flask+Nginx+uWSGI+Mysql搭建阿里云Web服务器 这个标题就比之前的"ECS服务器配置Web环境的全过程及参考资料&qu ...
 
随机推荐
- json.Decoder vs json.Unmarshal
			
128down voteaccepted It really depends on what your input is. If you look at the implementation of t ...
 - php中的匿名函数的注意事项
			
在php5.3以后,php加入匿名函数的使用,今天在使用匿名的时候出现错误,不能想php函数那样声明和使用,详细看代码 $callback=function(){ return "aa&qu ...
 - OCR 即 光学字符识别
			
OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗.亮的模式确定其形状,然后用字符识别方法将形状翻译 ...
 - Tomcat的类加载器
			
看完了Java类装载器,我们再来看看应用服务器(Tomcat)对类加载器的使用,每个应用服务器都有一套自己的类加载器体系,从而与Java的类加载器区别开以达到自己与应用程序隔离的目的.Tomcat的类 ...
 - 88. Merge Sorted Array【easy】
			
88. Merge Sorted Array[easy] Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 ...
 - 680. Valid Palindrome II【easy】
			
680. Valid Palindrome II[easy] Given a non-empty string s, you may delete at most one character. Jud ...
 - c++ about SLL(Static-Link Library) and DLL(Dynamic-Link Library)
			
First thing first, Wiki: http://en.wikipedia.org/wiki/Dynamic-link_library http://en.wikipedia.org/w ...
 - Android项目使用Dagger2进行依赖注入
			
原文链接:http://code.tutsplus.com/tutorials/dependency-injection-with-dagger-2-on-android–cms-23345 依赖注入 ...
 - IOS设计模式浅析之外观模式(Facade)
			
引言 在项目开发中,有时候会遇到这样的一种情景:已有系统的各个子系统之间,随着业务需求的发展,有了比较紧凑的耦合关系.现在需要利用这些子系统的功能,为移动端提供业务处理.我们该怎么应对这样的业务需求呢 ...
 - 各种排序算法C++
			
各种排序算法 插入排序 直接插入排序 void InsertSort(int arr[], int len) { int i, j; int temp; for (i = 1; i < len; ...