http中采用块传递方式的补充
来源:互联网 发布:全球经济数据 市盈率 编辑:程序博客网 时间:2024/06/09 21:43
在程序中由于如果是一般的情况下,那么客户端发送过请求消息之后,服务器端返回的信息头中应该包括一个字段叫做“Content-length”,这个字段,在这个字段之后紧接着就是将要返回给客户端的文件的大小,我们只要将这个值捕获,从服务器端接收相应大小的文件就可以了。但是有时候,Web服务器生成HTTP Response是无法在Header就确定消息大小的,这时一般来说服务器将不会提供Content-Length的头信息,而采用Chunked编码动态的提供body内容的长度。所以在程序中就无法获得文件的大小,Chunked编码的文件的格式是:
采用若干个块连接在一起,最后一个块的大小为0来决定块的结束,也就是文件的结束。具体的格式是:
(信息头)/r/n 165 [块大小,十六进制表示] /r/n(块的具体内容)/r/n 0 [块的大小为0,表示块的结束]/r/n
在程序中,将获得的信息头进行分析,从以前的方式中如果获得的文件的大小为0的情况下,那么就可以采用了块的传递方式,再进一步判断,如果在信息头中包含有Transfer-Encoding这个字段的话,就是采用了块传递的方式。这时就从信息头后面一个一个字符的从服务器端获得返回字符。以’/r’’/n’作为循环的结束。把这个字符串保存在一个动态数组中。这个数组中保存的就是十六进制的文件的大小,将字符串转化成整数,返回给原来程序中用来保存文件大小的变量,利用Receive就可以从服务器端获得制定大小的文件了.
- http中采用块传递方式的补充
- 观察者模式中,消息采用推和拉方式来传递的比较
- 在Python中,采用的格式化方式
- Http post方式传递参数的格式
- 浏览器在一次 HTTP 请求中,需要传输一个 4097 字节的文本数据给服务端,可以采用那些方式?
- dojo采用rpc方式传递表单元素
- 补充:http的介绍
- 想在函数中传递CString 类型的数组,后来采用CStringArray类来传递
- 用jni方式传递DES加密字符串 - 补充"java调用vc写的dll"
- Oracle中采用存储过程的方式批量更新数据
- http post 方法传递参数的2种方式
- http方式传递数据,JSON数据的解析等
- 图中 构建边的方式总结(待补充)
- android中intent传递数据的方式
- servlet中参数的传递方式
- java中参数传递的方式
- C语言中参数的传递方式
- Python中函数的参数传递方式
- COM的调用
- GridView实现单选操作
- Ctrl-Alt-Delete发明人做出巨无霸重启键(图)
- java初学者都应该搞懂的问题!(转贴)
- Lex和Yacc从入门到精通(2)--正则表达式篇
- http中采用块传递方式的补充
- Lex和Yacc从入门到精通(3)--一个极其简单的lex和yacc程序
- 关于小数点前0的显示问题
- 测试测试测试
- Lex和Yacc从入门到精通(4)-能够使用C++的Lex和Yacc框架
- Lex和Yacc从入门到精通(5)-开发Lex和Yacc程序的一般步骤
- ASP.NET的用户控件
- ASP 编程中非常有用的例子
- Lex和Yacc从入门到精通(6)-解析C/C++包含文件