Posts Tagged ‘ipv6

星期五 二月 26, 2010 15:50

超文本转移协议与万维网高速缓存

HTTP协议
HTTP是一个客户端和服务器端请求和应答的标准。从层次的角度看,HTTP是面向事务(所谓事务就是指一系列的信息交换,而这一系列交换是一个不可分割的整体,即要么所有的信息交换都完成,要么一次交换都不进行)的应用层协议,是万维网上能够可靠地交换文件的重要基础。
服务器进程不断的监听指定端口(默认端口为80),用来判断是否有浏览器(网络爬虫或其他客户进程)向它发出连接建立请求。当判断为真并建立连接之后,客户进程向源服务器(Origin Server)发出HTTP请求,源服务器响应,最后连接被释放。这样的操作交互遵循一定的规则与格式标准,而这个标准就是超文本转移协议HTTP。
HTTP虽然使用了TCP,但其本身是无状态的(stateless)。换句话说,同一个客户端第二次访问同一个服务器上的页面时,服务器的响应与第一次的相同。虽然TCP是面向连接的向上提供服务,但HTTP协议本身是无连接的。
尽管TCP/IP协议是互联网上最流行的应用,但HTTP协议并没有规定必须使用它和(基于)它支持的层。 事实上,HTTP可以在任何其他互联网协议上,或者在其他网络上实现。HTTP只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使用。
HTTP报文
HTTP有两类报文,一种是请求报文,另一种是响应报文。它们都由三个部分组成。从下图不难看出,两种报文结构的开始行略有不同。

方法
空格
URL
空格
版本
CRLF

首部字段名:
空格

CRLF
 
 

首部字段名:
空格

CRLF
 
 

CRLF

实体主体(通常不用)

(a)  请求报文

版本
空格
状态码
空格
短语
CRLF

首部字段名:
空格

CRLF
 
 

首部字段名:
空格

CRLF
 
 

CRLF

实体主体(有些响应报文不用)

(b)  响应报文
1)    开始行,用于区分是请求报文还是响应报文。所有HTTP请求的第一行都是请求行,主要包含请求方法,请求资源的URL,以及HTTP的版本;而响应报文的开始行叫做状态行,主要包含HTTP的版本,状态码以及其对应的短语。它们都用空格隔开,CR代表回车,LF代表换行。
2)    首部(Head)行,用来描述浏览器(网络爬虫等)或服务器的一些信息。它可以有好几行,每一行都必须有CR与LF。整个首部行结束之后,还用一个CRLF将其与实体隔开。
3)    实体主体(Entity Body),请求报文中一般不用这个字段(只有请求方法要求时才会被放在请求消息中),而响应报文里也可以没有。
其中值得注意的是,状态代码的第一个数字代表当前响应的类型:

1xx 消息——请求已被服务器接收,继续处理
2xx 成功——请求已成功被服务器接收、理解、并接受
3xx 重定向——需要后续操作才能完成这一请求
4xx 请求错误——请求含有词法错误或者无法被执行
5xx 服务器错误——服务器在处理某个正确请求时发生错误

虽然 RFC 2616 中已经推荐了描述状态的短语,例如”200 OK”,”404 Not Found”,但是 WEB 开发者仍然能够自行决定采用何种短语,用以显示本地化的状态描述或者自定义信息。
可以看到的是,HTTP仍在不断的发展。现在的较新的版本是1999年公布的HTTP/1.1[RFC 2616],它已成为因特网草案标准。而下一代HTTP(HTTP-NG)则正在研究之中。
万维网高速缓存
万维网高速缓存(Web cache)是代理服务器的一种功能,它将最近的一些请求与响应暂存在代理服务器的本地磁盘中。如果新的请求与代理服务器的缓存吻合,则直接从代理服务器返回响应;反之,则需要按照请求的URL再次通过Internet访问该资源。其大致过程如下:
1)    客户端(浏览器)需要发送请求时,与带有Web Cache功能的代理服务器建立TCP连接,并向代理服务器发送HTTP请求报文。
2)    如果代理服务器已经存放了所请求的对象,则直接将其放入HTTP响应报文中返回给客户端(浏览器)。
3)    否则,代理服务器就代表客户端(浏览器),与Internet上的源服务器建立TCP连接,并发送HTP请求报文,源服务器把请求对象放在HTTP响应报文中返回给代理服务器。
4)    代理服务器获得该对象之后,先复制保存到本地磁盘(为其日后服务),再将该对象放在HTTP响应报文中,通过之前与客户端建立的TCP返回给用户(浏览器)。
其中,保存到本地磁盘以及返回响应之前,我们Ipv6项目还有很多事要做。

星期天 十月 18, 2009 01:20

WMEncoder批处理功能实现

这段时间的学习和工作很难用乐观的言语表述。从接到这个任务的那天开始,不知不觉的,提交一份完整可用的代码变成了我生活的中心。可怕的是,周围的人都用异样的眼光看待我宅代码的行为。我能猜到他们在想什么,但,我就是不自觉的被这个中心左右着。
如果接下来的周一和张博后的交流没有问题,那么这个批处理功能的实现,应该就是我功成身退的礼物。第一次做转换工具,第一次看全英文的sdk,第一次和博后级的牛人交流,第一次用c#建立一个工程文件夹,很多个第一次都将变成美好的回忆…
很自然地,做项目的过程中,看到了自己很多知识还很不到位:本科时,《操作系统》完全没怎么重视,只是等到考试才临时抱佛脚,而今遇到有关线程的问题,又要重头来过;基础的算法思想没有打牢,没有打牢的直接后果是,代码臃肿而低效。工具语言没摸透,使用起来,生搬硬套…哎,说得自己一无是处了。
不过好在,接下来的日子里,我还有有机会…呃,希望在转角,命运在手中,笑一个吧?
update: 今天把技术文档写了下,呃,这里是在线浏览地址

星期六 十月 10, 2009 15:49

六十岁的中国,二十岁的我(2)

这个假期的大部分时间,主要还是宅code。正如上次提到的,我的具体任务是:研制现有资源向移动学习终端系统显示模式的资源转换工具,以及相关的全套技术文档。接单之后,任务很自然的被我分解为:视频、图片和html三个处理模块。(移动学习终端方面,是用的TCL的IOpen来做测试的)。截止至7号凌晨5点16分,整个任务的基本功能全部实现。
图片处理这块,毫无疑问的,我是走了一大圈弯路。 不敢说自己是一个java程序员,但让一个学习了java的人转过头来搞c#,这无疑会带着很复杂的感情。正如Jesse在他的著作里谈的那样:
Java programmers may look at C# with a mixture of trepidation, glee, and resentment. It has been suggested that C# is somehow a “rip-off” of Java. I won’t comment on the religious war between Microsoft and the “anyone but Microsoft” crowd, except to acknowledge that C# certainly learned a great deal from Java. But [...]

星期一 九月 28, 2009 14:34

为什么我和别人不一样

快1个月了,开学快1个月了,心里话是,这一个月过的没有多大的长进。但庆幸的是,很多不确定的因素,随着被动的等待,积极的争取也慢慢的沉淀下来。
首先是项目分组定下来了,我被分到了ipV6这个组里。它是基于《2009年下一代互联网业务试商用及设备产业化专项-支持IPv6的移动学习终端研发及产业化》这个子项目临时建立的小组,而我的具体任务是:研制现有资源向移动学习终端系统显示模式的资源转换工具,以及相关的全套技术文档。和别人不一样的是,导师手下的研一至研三的学生中,只有我被分配到这个项目组里。很快的,“边缘化”这个不太清晰的概念从同学的嘴里,通过空气介质,直逼我的耳膜。我的神经貌似触电了似的:为什么我和别人不一样?
我是一个注重长远规划远超过关注细节的人,对于研究生这3年,我有很多的期许。这次项目的第一个任务,和Windows Media Encoder有千丝万缕的联系。很不幸,在sdk里除了c以外,都是微软编程产品的接口。而我掌握比较熟练的工具语言却是另外一个阵营的——java。经过几天的尝试和研究,在视频的处理这块我能够相对较快上手的只有用c#来实现了。往近了说,我用java实现的图片处理工具可能会和用c#实现的视频工具在融合上要经历一段艰难的路要走;从之前的长远规划来看,有悖于我之前对java的学习计划。这样的2个trouble,让我之前被边缘化的情绪更高涨了——导师其他项目组的任务大部分是用java实现的,我来做应该能很快上手,但为什么我就和别人不一样呢?
带着满脑子的困惑,我跑去找了老刘。我把遇到的Trouble One怯怯懦懦的告诉了他,他回答的很简单:不要拘泥于编程语言。并非偶然的让我想起了《Thinking in Java》的作者Bruce Eckel ,他在写这本伟大的著作之前,还是《Thinking in C++》的作者,还与人合写了《Thinking in C#》。我…当天下午,我看了这个视频<Extraordinary Pantene Commercial>:

小女孩茫然:为什么我和别人不一样?
街头艺人:     为什么…要和别人一样?
是啊,为什么要和别人一样?想想我这一路走来,不论成功与失败,都造就了这个世界上唯一的我,不可复制,不能替代。所以,接下来该做的或许应该是重新来规划这近3年的计划了。
再一个确定的因素,应该是thinkpad入手。梦寐以求的小黑果然没有让我失望,入手的这几天每天都有惊喜发现。对于我这样一个非典型的Extraordinary宅男Style,thinkpad能够帮我做的有太多:日程安排,学习工作,娱乐消遣,通讯交流…所以,这样一个得力的助手到来,不可逆转的将对我产生积极的影响。欧也\(^o^)/

calendar

2010年八月
« 七    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

最近评论