关闭

小项目心得体会.对HTTP协议格式更深的理解.

标签: 服务器平台汇编java浏览器程序开发
2059人阅读 评论(1) 收藏 举报
分类:

这两天做了一个小项目,其实就是订做一个服务器平台.因为对方要求速度快和基于windows平台,且只能实现他们需要的功能,根据自己的知识,当然汇编是最好的选择.
订做服务器平台的过程还是比较顺利的,其实就是开发些服务器接口,例如定义now函数等等,供基于这个平台的程序使用;然后就是服务器平台内核函数,如创建,传递和销毁Request等;最后就是它的管理GUI,做的过程中遇到一个问题,就是输出到客户端的时候,浏览器总是显示一个下载对话框,让用户另存.显然,这不是我想要的结果.根据在java平台上的服务器程序开发经验,这是因为服务器返回的文件头的问题,java的API是比较高层的,对于HTTP协议的具体传输格式我们并不清楚,因为它对我们透明了,我们只知道有个header,body,仅此而已.
然后用汇编写了一个程序去测试本地http://localhost:8080/,服务器的返回结果:

HTTP/1.1 200 HTTP 200 c8
Server Apache-Coyote/1.1
Content-Type text/html;charset=GB2312
Transfer-Encoding chunked
Date Sat, 15 Sep 2007 04:23:27 GMT

<html>
<body>
.....
</body>
</html>

原来它们是一起传过来的,而我们从浏览器的查看源代码是看不到文件头的,用java的HttpURLConnection类去读这个地址的InputStream也只有从<html>开始的内容,而只有用getHeader等方法才能到文件头,所以从java是无法知道传输格式,而汇编较底层,当然,格式一目了然.
然后在网上查了一下资料,服务器的响应格式就像上面一样,文件头在前面,然后空一行,后面就是文件的body.



有时候程序语言太高级了,将会使我们知道的更少啊...
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:30196次
    • 积分:538
    • 等级:
    • 排名:千里之外
    • 原创:22篇
    • 转载:4篇
    • 译文:0篇
    • 评论:6条
    最新评论