您的位置:首页 > 理论基础 > 计算机网络

Node.js(五)——HTTP相关知识

2017-03-20 21:32 447 查看
什么是http及相关的知识
什么是http?
http就是一种协议计算机之间要共同遵守这个协议的规则
才能彼此之间相互通信
当然现在不局限于计算机,手机、冰箱、电视机等智能终端

这个协议在场景中的使用流程是如何的?
通常由一个http客户端发起一个请求,创建端口
而http服务器在端口监听客户端的请求
一旦收到请求,http服务器向客户端返回一个状态和相对应的内容
什么是http及相关的知识
什么是http?
http就是一种协议计算机之间要共同遵守这个协议的规则
才能彼此之间相互通信
当然现在不局限于计算机,手机、冰箱、电视机等智能终端

这个协议在场景中的使用流程是如何的?
通常由一个http客户端发起一个请求,创建端口
而http服务器在端口监听客户端的请求
一旦收到请求,http服务器向客户端返回一个状态和相对应的内容

计算机和浏览器之间做的工作如下:
第一步:域名解析
1.已Chrome浏览器为例:先搜索自身的DNS缓存,看自身的缓存中有没有
a.51cto.com这个余名或者缓存的IP地址,这个缓存的时间大概只有一分钟
如果有缓存则判断是否过期,如果过去这个解析则就结束了
那怎么看Chrome自身的缓存呢?
chrome://net-internals/#dns
2.如果浏览器没有找到缓存,则会搜索操作系统自身的DNS缓存
3.如果操作系统的DNS也没有找到,则会读取本地的HOST文件
4.如果在HOST也没有找到对应的配置项,则浏览器会发起一个DNS的一个系统调用
就会向本地主控DNS服务器,一般来说是你的宽带运营商所提供
发起的一个域名解析请求
那域名的DNS服务器首先会查看本身缓存,找到对应的条目,
如果找到则代替我们的浏览器发起一个迭代的DNS解析请求
什么意思呢?
首先它会先找到根域的DNS IP地址
经过一系列最终从com域名找到
运营商服务器把结果返回操作系统内核同时缓存起来
操作系统内核再把结果返回浏览器
最终浏览器拿到了www.51cto.com对应的IP地址

通过以上思路,可以直观得看到一个资源请求的时候所耗费的成本
理论过程远不止于此。
5.域名解析完成后就拿到域名对应的IP,发起HTTP"三次握手"
6.TCP/IP连接建立起来后,浏览器就可以向服务器发送HTTP请求了,
比如说:用HTTP的GET方法请求一个根域里的一个域名,协议可以采用HTTP 1.0的一个协议
7.服务器端接受到了这个请求,根据路径参数,经过后端的一些处理之后
把处理后的一个结果的数据返回给浏览器,如果是blog的页面就会把完整的
HTML页面代码返回给浏览器
8.浏览器拿到了blog的完整的HTML页面代码,在解析和渲染这个页面的时候
里面的JS、CSS、图片静态资源,他们同样也是一个个HTTP请求都需要
经过上面的主要的七个步骤。
9.浏览器根据拿到的资源对页面进行渲染,最终把一个完整的页面呈现给用户
参考:

从输入 URL 到页面加载完成的过程中都发生了什么事情?

http://fex.baidu.com/blog/2014/05/what-happen/
Chrome F12 中的 Network,可参见Chrome开发者文档(无需翻墙):https://developers.google.cn/web/tools/chrome-devtools/network-performance/
状态码:http://tool.oschina.net/commons?type=5
请求头:http://tools.jb51.net/table/http_header
http://blog.csdn.net/mm2223/article/details/8089645
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  HTTP Node 相关知识