zoukankan      html  css  js  c++  java
  • Node.js进击基础一(http)

    URL:统一资源定位符,偏重定位,是URI的子集,例如网址。URL一定是URI,但URI 不一定是URL。规则:只能用英文阿拉伯数字某些符号等,如果有文字就必须编码。

    URI:统一资源标识符,偏重标识,字符串格式规范。

    Http:

    1、http客户端发起请求,创建端口(例:用手机打开浏览器网页,创建到服务器的默认端口80的TCP链接)

    2、http服务器在端口监听客户端请求

    3、http服务器向客户端返回状态和内容

    当我们输入网址回车或者按h5刷新时计算机和浏览器做的事情:

    域名解析: 一、浏览器会先搜索自身的DNS缓存,例如a.imooc.com这个域名已经缓存的ip地址,这个缓存的时间只有1分钟,如有缓存看有没有过期,如果过期这个解析就结束了。查看chrome的缓存:chrome://net-internals/#dns

        二、搜索操作系统自身的DNS缓存,浏览器没有找到缓存或缓存已经失效。如果缓存也没有过期,那解析也到此结束。

        三、读取本地的HOST文件,操作系统自身的DNS缓存也没有找到。

          四、浏览器发起一个DNS的一个系统调用。向本地主控DNS服务器(一般来说是宽带运营商提供的)发起的一个域名解析请求。

                     运营商的DNS服务器:1、宽带运营商服务器查看本身缓存,查找对应的条目,如果没有过期就解析成功了

                                                  2、运营商服务器替浏览器发起一个迭代DNS解析的请求

                                                          先找到根域DNS:

         

                                                 拿到com域的ip地址:

                

     ·

                                                找到imooc.com这个域的DNS服务器(该服务器由域名的注册商提供。如万网、新网等):

    imooc.com域的DNS服务器将查找的结果发送给运营商的DNS服务器,这时运营商的DNS服务器拿到了imooc.com这个域名对应的ip地址,将结果返回给操作系统内核,同时也缓存在自己的缓存区。操作系统内核把ip地址返回给浏览器。最终浏览器拿到了www.imooc.com对应的IP地址。

         五、浏览器获得域名对应的IP地址后,发起HTTP "三次握手"

    浏览器以一个随机端口向服务器的web程序,如ngix80端口发起一个TCP的连接请求,这个请求通过层层的路由设备到达服务器端以后进入到网卡,进入到内核的TCP/IP协议栈,可能还需要防火墙的过滤,最终到达web服务端,建立起TCP和IP的连接。

     

    三次握手做了什么:客户端向服务器

        六、TCP/IP连接建立起来后,浏览器就可以向服务器发送HTTP请求了。使用了比如说,用HTTP的GET方式请求一个根域里的一个域名,协议可以采用HTTP 1.0的一个协议。

        七、服务器端接收到了这个请求,根据路径参数,经过后端的一些处理之后,把处理后的一个结果的数据返回给浏览器,如果是网站页面就会把完整的HTML页面代码返回给浏览器。

        八、浏览器拿到了网站页面完整的HTML代码,在解析和渲染这个页面的时候,里面的js、css、图片静态资源,他们同样是一个个HTTP请求,都需要经过上面的主要的七个步骤。

        九、浏览器根据拿到的资源对页面进行渲染,最终把一个完整的页面呈现给用户。

    HTTP协议的组成:

    HTTP头:发送的是一些附加的信息:内容类型、服务器发送响应的日期、HTTP状态码。

    正文:就是用户提交的表单数据。

  • 相关阅读:
    MySQL数据库小结
    使用Python操作MySQL数据库
    MySQL索引原理
    MySQL性能分析之Explain
    201907 TIOBE 编程语言排行榜-Python坐稳第三
    MySQL索引的数据结构-B+树介绍
    MySQL多表查询综合练习答案
    MySQL记录操作
    MySQL多表查询
    javascript实现无缝上下滚动(转)
  • 原文地址:https://www.cnblogs.com/zuojiayi/p/6899981.html
Copyright © 2011-2022 走看看