2012年09月 存档

HTTP协议漫谈:概述

2012年09月15日,星期六

自从学习linux编程以来,一直对与服务器的工作原理十分感兴趣,想写一个,然而暑假由于各种原因耽搁了下来,前几天是课程设计,大概两周时间,我就趁这个时间,简单实现了一下。又恰逢《HTTP权威指南》出版,入手了一本,大概翻了一遍,对于HTTP的细节了解了很多,收获还是很大的。我简单总结一下,巩固知识&&方便以后查看。

HTTP,超文本传输协议,是使用非常广泛的网络协议,我们平时上网看新闻,刷微博都要依靠下面的http协议来传递信息。要传递信息,首先需要客户端发起连接,客户端和服务器建立链接之后,发送HTTP请求报文,服务器接受请求之后返回给客户端一个响应报文。请求和响应都是固定文本格式的,在协议中有明确的定义,之后会详解。HTTP底层是通过TCP进行通讯的,不过我们不必关心TCP的具体细节,只需要知道他提供可靠连接,并且在请求和响应完成后关闭连接(持久链接中有多次请求和响应)。

HTTP的请求可以有好几种,最常见的是GET请求(还有POST,HEAD等),他会向服务器请求资源(即“get”资源),同时会给一个资源的地址,这些东西放在请求报文的开头第一行,我们把这一行称为起始行。

GET /index.html HTTP/1.1\r\n

(更多…)