• html,css,js,jquery随笔记录


    一 HTML

        1.html语义化即html具有可读性,更容易读懂,一些特殊的标签例如radio,button,h2,input之类的,即使没有样式,也可以让人一眼看出是做什么的。这也让搜索引擎更容易读懂,有利于爬虫抓取更多信息。

       2.script标签的defer和async属性

        <script></script>  html按顺序解析,遇到此标签时,会先请求标签涉及的脚本资源,并且立即执行,执行完成之后再继续解析接下来的html标签

        <script async></script> html按顺序解析,遇到此标签时,会先异步请求标签涉及的脚本资源,因为是异步的,所以html解析过程是继续进行的,等到异步请求回来之后,会暂停html解析,先立即执行此脚本,执行完成之后再继续解析html。多个script async脚本执行顺序以异步请求先结束的为优先

        <script defer></script> html按顺序解析,遇到此标签时,会先异步请求标签涉及的脚本资源,同时继续解析html,知道html解析完成,才会在最后执行异步请求完成之后的脚本。多个script defer脚本执行顺序以出现的顺序为准

    3.从url输入到页面展示发生了什么

     3.1 url分析

     以此连接为例 https://www.baidu.com/baidu?tn=monline_3_dg&ie=utf-8&wd=%E5%8D%9A%E5%AE%A2%E5%9B%AD

      http https是 因特网协议服务类型,常见的有http,https   http与https的区别,https是进行加密的网络传输类型,常用于正式环境,http常用于本地开发环境

      www 主机  http的·默认主机是www

      baidu.com 域名

      此链接无端口号

      baidu  服务器上的文档路径

      tn=monline_3_dg&ie=utf-8&wd=%E5%8D%9A%E5%AE%A2%E5%9B%AD  查询参数

      3.2访问步骤

        DNS域名解析,此链接中,DNS协议通过域名baidu.com找到对应的ip地址,一般是迭代查询

       CDN  content delivery network利用了DNS的负载均衡(重定向)实现原理,这个原理是DNS服务器为同一个主机配置多个IP地址,这样客户端访问时,DNS解析过程就将不同的客户引导导不同ip地址去,这样可以让不同的客户端访问不同的服务器,从而达到负载均衡的目的。

      DNS-prefetch  就是当客户浏览一个网页时,浏览器会在加载网页时对这个网页中的域名进行解析,这样在点击这个网页中的连接时就无需再进行DNS解析,减少用户等待时间。

    3.3 OSI参考模型

         1.物理层--2.数据链路层--3.网络层--4.传输层--5.会话层--6.表示层--7.应用层

    3.4 TCP/IP四层模型

          物理层和数据链路层组成了TCP/IP低层一层,有以太网  无线lan

          网络层组成了TCP/IP的第二层,有ipv4 ipv6

          传输层组成了TCP/IP的第三层,层有TCP UDP协议

          会话层,表示层,应用层组成了TCP/IP的第四层,这部分有HTTP,HTML,SSL TLS FTP MIME HTML

    3.5 TCP的三次握手过程

         第一次握手,客户端---发送SYN=1 Seq=X 到服务端,告知服务器浏览器要发请求了

         第二次握手,服务端返回一个SYN=1 Seq=X  ACK=X=1 告诉客户端,服务端准备好接受请求了,并且确认数据包是不是第一次发送的那样

         第三次握手,客户端回传一个ACK=Y+1 Seq=Z到服务端表示握手结束

     3.6 TCP三次握手结束之后,开始发送HTTP请求报文

     3.7 服务器处理请求并返回http报文

          MVC

          view层发生变化触发controler,并且将变化的数据传给controler

          controler拿到数据变化触发model,并且将变化的数据传给model,

          model将数据存取更新并且触发view视图层更新

         MVVM

         model层数据发生变化自动同步到view层

         view层发生变化自动同步到model层

         Mvc模式和MVVM模式的区别

         1.MVC是单向数据绑定,MVVM是双向数据绑定,且是自动的,减少了dom操作,提升了渲染速度,有更好的用户体验

         2.MVVM view和model完全分离,耦合性低

    3.8浏览器解析渲染页面

        浏览器是多进程的,每一个tab页面都是一个新的进程,浏览器也是多线程内核,每一个tab页面进程中都是多线程的,线程包括以下几个分类

         GUI线程

         JS引擎线程

         事件触发线程

         定时器线程

         网络请求线程

         html解析构成dom树--------]

                                                      两个合并变成render tree---layout对render tree进行布局,计算尺寸,位置,像素---绘制render tree

         css解析构成style rules tree---]

          浏览器将html字节类型的内容转化为字符,这些字符会按照html的规范转化为不同的token,每个token都有自己的规则,然后再把这些token转化为node对象。最终由node对象构建成dom

    3.9 TCP四次挥手

         浏览器发送fin seq=x+2 ack 告知服务器请求发送完了,没有数据发送了,准备关闭,浏览器进入FIN_WAIT_1状态

         服务器收到后发送ack seq到浏览器,告知同意关闭,浏览器收到后进入FIN_WAIT_2状态

         服务器再次发送报文端fin seq ack  请求关闭连接,服务器进入last-ack状态

         浏览器收到后,向服务器发送seq ack,浏览器进入time_wait状态,服务器收到后关闭连接,浏览器等一段时间未收到回复,正常关闭

      

  • 相关阅读:
    008. 限制上传文件的大小
    007. 实现登录验证的方式
    006. 创建包含公共类的文件夹
    005. asp.net页面常用指令
    004. 连接默认错误页
    003. 连接access数据库代码
    VS2013生成Release版本MFC程序在其他机器上运行
    MFC WebBrowser判断网页加载完成
    第一课 JAVA环境与第一个HelloWorld运行
    HTTP协议详解&TCP&OSI七层概念模型
  • 原文地址:https://www.cnblogs.com/carolddz/p/16350234.html
Copyright © 2020-2023  润新知