HTTP Cookie 是服务器发送到用户浏览器并保存在本地的一小块数据。浏览器会存储 cookie 并在下次向同一服务器再发起请求时携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器。Cookie 使基于无状态的 HTTP 协议记录稳定的状态信息成为了可能. 创建Cookie: 服务器收到 HTTP 请求后,服务器可以在响应标头里面添加一个或多个 Set-Cookie 选项。浏览器收到响应后通常会保存下 Cookie,并将其放在 Cookie 标头内。 Set-Cookie: = ...
同源策略是一项核心安全机制,它限制一个源中的文档或脚本能与另一个源的资源进行哪些交互(读、写、嵌入等),从而防止恶意网站跨域窃取或篡改数据。 如果两个 URL 的协议、端口和主机都相同的话,则这两个 URL 是同源的。这个方案也被称为“协议/主机/端口元组” 以下是可能跨源的资源的一些示例: 使用 标签嵌入的 JavaScript 脚本。语法错误信息只能被同源脚本中捕捉到。 使用 `` 标签嵌入的 CSS。由于 CSS 的松散的语法规则,CSS 的跨...
强缓存 强缓存 是指浏览器在缓存资源时,按照服务器返回的缓存控制头部 Cache-Control 或 Expires 来决定是否可以直接从缓存中读取资源,而无需向服务器发起请求。若缓存有效,则浏览器直接使用缓存的数据,不会向服务器发送请求,极大提高页面加载速度。强缓存的核心在于 有效期 的控制。 Cache-Control Cache-Control 是 HTTP1.1 中控制网页缓存的字段,主要取值为: pu...
当浏览器的网络线程收到 HTML 文档后,会产生一个渲染任务,并将其传递给渲染主线程的消息队列。 在事件循环机制的作用下,渲染主线程取出消息队列中的渲染任务,开启渲染流程。 整个渲染流程分为多个阶段,分别是: HTML 解析、样式计算、布局、分层、绘制、分块、光栅化、画 每个阶段都有明确的输入输出,上一个阶段的输出会成为下一个阶段的输入。 这样,整个渲染流程就形成了一套组织严密的生产流水线。 的原因在于它充当了客户端与目标服务器之间的中介角色。当浏览器直接发起请求时,它会受到同源策略的限制,只允许访问与当前页面相同源的资源。但是,当使用代理时,代理服务器代替客户端发起请求,实际的请求来源就不再是客户端的浏览器,而是代理服务器。 iafkad...
浏览器的工作机理 浏览器是一个多进程多线程复杂应用,其中最复杂的进程有: 浏览器进程: 是浏览器中最主要的进程,其他的进程都由浏览器进程调控,主要负责界面显示、用户交互、子进程管理。浏览器进程内会启动多个线程来处理不同的任务。 网络进程:负责加载网络资源,网络进程启动多个线程来处理不同的网络任务。 渲染进程**: 目前的主流策略,浏览器会为每一个标签页开启一个渲染进程,在进程中启用一个渲染主线程来执行HTML、CSS、JS代码。 渲染进程工作内容 渲染主线程是浏览器中最繁忙的线程,需要它处理的工作包括但不限于: 解析HTML 解析CSS...