增加图注释

This commit is contained in:
xiemengjun
2013-01-16 23:11:49 +08:00
parent 133d9976b3
commit e54f54988d
27 changed files with 152 additions and 10 deletions

13
03.1.md
View File

@@ -6,6 +6,8 @@
![](images/3.1.web2.png?raw=true)
图3.1 用户访问一个Web站点的过程
一个Web服务器也被称为HTTP服务器它通过HTTP协议与客户端通信。这个客户端通常指的是Web浏览器(其实手机端客户端内部也是浏览器实现的)。
Web服务器的工作原理可以简单地归纳为
@@ -34,6 +36,8 @@ URL(Uniform Resource Locator)是“统一资源定位符”的英文缩写,用
![](images/3.1.dns_hierachy.png?raw=true)
图3.2 DNS工作原理
更详细的DNS解析的过程如下这个过程有助于我们理解DNS的工作模式
1. 在浏览器中输入www.qq.com域名操作系统会先检查自己本地的hosts文件是否有这个网址映射关系如果有就先调用这个IP地址映射完成域名解析。
@@ -50,6 +54,8 @@ URL(Uniform Resource Locator)是“统一资源定位符”的英文缩写,用
![](images/3.1.dns_inquery.png?raw=true)
图3.3 DNS解析的整个流程
> 所谓 `递归查询过程` 就是 “查询的递交者” 更替, 而 `迭代查询过程` 则是 “查询的递交者”不变。
>
> 举个例子来说,你想知道某个一起上法律课的女孩的电话,并且你偷偷拍了她的照片,回到寝室告诉一个很仗义的哥们儿,这个哥们儿二话没说,拍着胸脯告诉你,甭急,我替你查(此处完成了一次递归查询,即,问询者的角色更替)。然后他拿着照片问了学院大四学长学长告诉他这姑娘是xx系的然后这哥们儿马不停蹄又问了xx系的办公室主任助理同学助理同学说是xx系yy班的然后很仗义的哥们儿去xx系yy班的班长那里取到了该女孩儿电话。(此处完成若干次迭代查询,即,问询者角色不变,但反复更替问询对象)最后,他把号码交到了你手里。完成整个查询过程。
@@ -83,8 +89,12 @@ HTTP协议是无状态的同一个客户端的这次请求和上次请求是
![](images/3.1.http.png?raw=true)
图3.4 fiddler抓取的GET信息
![](images/3.1.httpPOST.png?raw=true)
图3.5 fiddler抓取的POST信息
**我们可以看到GET请求消息体为空POST请求带有消息体**
HTTP协议定义了很多与服务器交互的请求方法最基本的有4种分别是GET,POST,PUT,DELETE. 一个URL地址用于描述一个网络上的资源而HTTP中的GET, POST, PUT, DELETE就对应着对这个资源的查删4个操作。 我们最常见的就是GET和POST了。GET一般用于获取/查询资源信息而POST一般用于更新资源信息.
@@ -120,6 +130,7 @@ Response包中的第一行叫做状态行由HTTP协议版本号 状态码
![](images/3.1.response.png?raw=true)
图3.6 访问一次网站的全部请求信息
### HTTP协议是无状态的和Connection: keep-alive的区别
无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。从另一方面讲,打开一个服务器上的网页和你之前打开这个服务器上的网页之间没有任何联系。
@@ -134,6 +145,8 @@ Keep-Alive不会永久保持连接它有一个保持时间可以在不同
![](images/3.1.web.png?raw=true)
图3.7 一次请求的request和response
上面这张图我们可以了解到整个的通讯过程同时细心的读者是否注意到了一点一个URL请求但是左边栏里面为什么会有那么多的资源请求(这些都是静态文件go对于静态文件有专门的处理方式)。
这个就是浏览器的一个功能第一次请求url服务器端返回的是html页面然后浏览器开始渲染HTML当解析到HTML DOM里面的图片连接css脚本和js脚本的链接浏览器就会自动发起一个请求静态资源的HTTP请求获取相对应的静态资源然后浏览器就会渲染出来最终将所有资源整合、渲染完整展现在我们面前的屏幕上。