一些问题的理解

最近在搞网络方面的应用,然后对一些基本的知识进行的反思和学习,现在总结如下:

 

socket VS http


最近对利用socket请求数据被一个同事质疑,说服务器会更改,http协议会变,不能简单的用socket进行http请求。系统本身对http的封装在socket的基础上还做了很多的工作。

mama的,一直没有想过socket跟http的关系,虽然觉得他的想法很奇怪,但是没有找到理由进行说服他。

今天查找了一些资料,弄清楚了这个问题

首先,socket是TCP和UDP的编程接口,是所有现代操作系统都统一支持的;而http是基于TCP协议之上的应用层协议

对上面一句话的理解是非常重要的,也就是说,socket这个编程接口肯定是可以实现http协议的。那么,http协议到底规定了一些什么呢?从数据上来说http协议在TCP协议数据上增加了一些协议头,这个协议头用于服务器和客户端的交互,例如,请求的方式是Get还是Post,Host是什么,遵循的http协议时1.0还是1.1。
进行http请求其实就是很简单的事情了。只有按照http的协议头进行组织,发过去,http服务器可以识别数据,然后返回数据,那么收到数据将http头拆分处理,那么要如何处理就如何处理了。
因此,socket实现http是很简单的,按照http的格式发生数据即可!


Http1.0 VS Http1.1


应该说没什么差别,至少它们是向下兼容的,http1.1至少增加了一些东西,例如返回的statue code 有100表示继续,当然对于http服务器的实现来说是有很多的区别的,例如要实现persistent connection

下面是一些介绍的链接:

http://www8.org/w8-papers/5c-protocols/key/key.html

http://stackoverflow.com/questions/246859/http-1-0-vs-1-1


 

posted @ 2010-12-31 15:48  左手程序右手诗  阅读(195)  评论(0编辑  收藏  举报