浏览器解析,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客户端验证、基于表单验证。

原文地址:https://www.cnblogs.com/unclefang/p/10408068.html