http(hypertext transfer protocol):超文本协议。是万维网(world wide web,www,也简称为web)的基础。http是一个属于应用层的面向对象的协议。适用于分布式超媒体信息系统。
它于1900年提出,经过使用与发展,得到不断的完善和扩展,目前www中使用的是htttp1.1:
最开始出现的http原始协议现在成为:http0.9 ,它是一个面向消息的简单协议。是现在使用的http协议的子集。因此它同http0.1、htttp1.1兼容。
http协议的三个显著特点:
1、无连接:限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后立即断开连接。采用这种方式可以节省传输时间。
2、无记忆:协议不保留当前事务处理的信息。虽然这会带来一些副作用,可是服务需要重新利用先前信息,可以实现较快应答。
3、无状态:每一个事务都是独立地进行处理。当一个事务开始时,就在www客户与wwwf服务器之间产生一个TCP连接,当事务结束时就释放这个TCP连接。
http有两类报文:
1、客户到服务器的请求报文(request)
2、服务器到客户的响应报文(response)
一、http请求
http 请求由三部分构成,分别是:方法-URL-协议/版本,请求头,请求正文
【请求头说明】Accept :说明能接受的内容类型
Accept-Language:指客户端的语言,这也是为什么我们访问google.com会自动指派到google.cn上面。
Accept-Encoding:这个是指客户端所能接受编码规则。
user-Agent:客服端的信息,对于服务器来说没有这个信息,它并不知道客户是使用什么环境访问www服务的,所以相关的日志信息记录的就是客户浏览器发送的这块内容。
host:指请求的主机地址
【注意】请求头和请求正文之间是一个空行(只有CRLF符号的行),这个行非常重要,它表示请求头已经结束,接下来的是请求的正文。
二、response 应答
应答是指对http请求的响应。与http请求相似,http应答也由三个部分构成,分别是:协议-状态代码-描述、应答头、应答正文。
【响应头说明】contect-Length:正文长度,确保传输的页面内容正确。
contect-Type:正文的类型,是文本还是压缩格式。
server:服务器上的WWW服务器名称。
date:服务器上的GMT格林威治时间
【注意】应答的正文就是服务器返回的HTML页面。应答头和正文之间也用一个空行(只有CRLF符号的行)分隔。
总结:我们看到的一个完整的web网站是由很多http请求组成的,一般来说我们第一次的请求会下载HTML的页面,然后浏览器会做一个解释工作,一边解释一边根据html中的请求(css、js、flash、jpeg、gif)将请求发送出来,服务器再将相关内容返回,最后我们就看到了一个完整的页面。