zoukankan      html  css  js  c++  java
  • 浏览器解析,HTTP/HTTPS、TCP/IP、WebSocket协议

    浏览器相关

    1. 浏览器对同一个域名有连接数限制,大部分是 6

    2. 浏览器指的是 Chrome、Firefox,而浏览器内核则是 Blink、Gecko,浏览器内核只负责渲染,GUI 及网络连接等跨平台工作则是浏览器实现的。

    3. Chrome 浏览器的每个标签页都分别对应一个呈现引擎实例,每个标签页都是一个独立的进程。

    4. 浏览器的容错机制,例: WebKit会把
      处理成

    5. 呈现器坐标系是相对于根框架而建立的,使用的是上坐标和左坐标

    6. css盒模型:每一个框都有一个内容区域(例如文本、图片等),还有可选的周围补白、边框和边距区域。所有元素都有一个“display”属性,决定了它们所对应生成的框类型。

    7. 如果网站在HSTS列表里,浏览器会使用 HTTPS 而不是 HTTP 协议,否则,最初的请求会使用HTTP协议发送,注意,一个网站哪怕不在 HSTS 列表里,也可以要求浏览器对自己使用 HSTS 政策进行访问。

    网络分层架构图

    网络分层有3种方式: OSI有7层、tcp有4层、Cisco有3层。

    互联网基于分层架构实现,包括应用层、传输层、网络层、链路层、物理层, 也就是TCP(传输层)/IP(网络层)分层模型。

    1. 应用层:

    应用层是我们经常接触使用的部分,比如常用的http协议、ftp协议(文件传输协议)、snmp(网络管理协议)、telnet (远程登录协议 )、smtp(简单邮件传输协议)、dns(域名解析),这次主要是面向用户的交互的。这里的应用层集成了osi分层模型中 的应用、会话、表示层三层的功能。

    1. 传输层:

    传输层的作用就是将应用层的数据进行传输转运。比如我们常说的tcp(可靠的传输控制协议)、udp(用户数据报协议)。传输单位为报文段。

    tcp(Transmission Control Protocol): 面向连接(先要和对方确定连接、传输结束需要断开连接,类似打电话)、复杂可靠的、有很好的重传和查错机制。一般用与高速、可靠的通信服务。

    udp(user datagram protocol):面向无连接(无需确认对方是否存在,类似寄包裹)、简单高效、没有重传机制。一般用于即时通讯、广播通信等

    1. 网络层

    网络层用来处理网络中流动的数据包,数据包为最小的传递单位,比如我们常用的ip协议、icmp协议、arp协议(通过分析ip地址得出物理mac地址)。

    1. 链路层

    数据链路层一般用来处理连接硬件的部分,包括控制网卡、硬件相关的设备驱动等。传输单位数据帧。

    1. 物理层

    物理层一般为负责数据传输的硬件,比如我们了解的双绞线电缆、无线、光纤等。比特流光电等信号发送接收数据。

    TCP协议三次握手

    第一次握手:客户端发送带有SYN标志的连接请求报文段,然后进入SYN_SEND状态,等待服务端的确认。

    第二次握手:服务端接收到客户端的SYN报文段后,需要发送ACK信息对这个SYN报文段进行确认。同时,还要发送自己的SYN请求信息。服务端会将上述的信息放到一个报文段(SYN+ACK报文段)中,一并发送给客户端,此时服务端将会进入SYN_RECV状态。

    第三次握手:客户端接收到服务端的SYN+ACK报文段后,会想服务端发送ACK确认报文段,这个报文段发送完毕后,客户端和服务端都进入ESTABLISHED状态,完成TCP三次握手。

    当三次握手完成后,TCP协议会为连接双方维持连接状态。

    DNS

    通过DNS服务把域名解析成IP地址.

    WebSpcket

    WebSocket, 一种「双向通信」的协议。WS的默认端口是80和443, 协议由两部分组成:握手和数据传输。

    HTTP协议状态码取值

    1xx:指示信息--表示请求已接收,继续处理

    2xx:成功--表示请求已被成功接收、理解、接受

    3xx:重定向--要完成请求必须进行更进一步的操作

    4xx:客户端错误--请求有语法错误或请求无法实现

    5xx:服务器端错误--服务器未能实现合法的请求

    常见状态代码、状态描述、说明

    200 OK //客户端请求成功

    400 Bad Request //客户端请求有语法错误,不能被服务器所理解

    401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用

    403 Forbidden //服务器收到请求,但是拒绝提供服务

    404 Not Found //请求资源不存在,eg:输入了错误的URL

    500 Internal Server Error //服务器发生不可预期的错误

    503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

    eg:HTTP/1.1 200 OK (CRLF)

    URI和URL的区别

    URL叫做统一资源定位符,而URI叫做统一资源标识符。

    URL的范围是要大于URI的。以淘宝的例子来说,
    https://www.taobao.com/
    这个域名就是URL,而每个商品的地址就是一个URI。

    HTTPS相比较HTTP的优缺点:

    优点:

    1. HTTPS采用了非对称加密的方式,用公钥去加密,用私钥去解密。常见的非对称加密算法是RSA。

    2. 为了保证密钥的合法性,HTTPS采用了数字证书这个概念。

    3. HTTPS使用了MAC算法来保证其完整性

    缺点:

    1. 速度慢

    2. CPU及内存等资源的消耗大

    3. 证书得向认证机构购买(Let’s Encrypt可免费申请证书)

    HTTP使用的认证方式

    BASIC认证、DIGEST认证、SSL客户端验证、基于表单验证。

  • 相关阅读:
    oracle-Oracle试题
    webservice-WebService试题
    php-PHP试题
    xml-xml试题
    ajax-Ajax试题
    用java在客户端读取mongodb中的数据并发送至服务器
    表格标记
    HTML常用标记
    Java操作Mongodb 保存/读取java对象到/从mongodb
    Spark Streaming的编程模型
  • 原文地址:https://www.cnblogs.com/unclefang/p/10408068.html
Copyright © 2011-2022 走看看