HTTP协议
1. 简介
超文本传输协议(HyperText Transfer Protocol) 是一种应用层协议
设计最初目的就是为了提供一种发布和接收HTML页面的方法

在Web应用中,服务器把网页传给浏览器,实际上就是把网页的HTML代码发送给浏览器,让浏览器显示出来。而浏览器和服务器之间传输协议就是HTTP
- HTML是一种定义网页的文本,会HTML就可以编写网页
- HTTP是网络上传输HTML的协议,用于浏览器和服务器的通信
安装好Chrome浏览器后,打开Chrome,在菜单中选择“视图",“开发者”,“开发者工具”,就可以显示开发者工具:

3. Elements显示网络的结构
4. NetWork显示浏览器和服务器的通信

2. HTTP协议分析
当我们在地址栏输入www.sina.com时,浏览器将显示新浪的首页。在这个过程中,浏览器都干了哪些事情呢?通过Network的记录,我们就可以知道。在Network中,找到www.sina.com那条记录,点击,右侧将显示Request Headers,点击右侧的view source,我们就可以看到浏览器发给新浪服务器的请求:
2.1 浏览器请求

说明:
GET / HTTP/1.1
GET表示一个读取请求,将从服务器获得网页数据,/表示URL的路径,URL总是以开头,就表示首页,最后的HTTP/.1指示采用的HTTP协议版本是1.1。目前HTTP协议的版本就是1.1,但是大部分服务器也支持1.0版本,主要区别在于1.1版本允许多个HTTP请求复用一个TCP连接,以加快传输速度。
2.2 服务器响应

HTTP响应分为Header和Body两部分(Body是可选项),我们在Network中看到的Header最重要的几行如下:
HTTP/1.1 200 OK
200表示一个成功的响应
Content-Type: text/html
Content-Type指响应的内容,这里是text/html表示HTML网页
请注意,浏览器就是依靠Content-Type来判断响应的内容是网页还是图片,是视频还是音乐。Х
览器并不靠URL来判断响应的内容,所以,即使URL是http://www.baidu.com/meimei.jpg它也不一定就是图片。
HTTP响应的Body就是HTML源码,我们在菜单栏选择“视图",“开发者",“查看网页源码"就可以在浏览器中直接查看HTML源码:

浏览器解析过程
当浏览器读取到新浪首页的HTML源码后,它会解析HTML,显示页面,然后,根据HTML里面的各种链接,再发送HTTP请求给新浪服务器,拿到相应的图片、视频、Flash、JavaScript脚本、CSS等各种资源,最终显示出一个完整的页面。所以我们在Network下面能看到很多额外的HTTP请求。

288

被折叠的 条评论
为什么被折叠?



