自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

原创 回流-重绘-合成

回流-重绘-合成更新视图三种方式回流、重绘、合成回流另外一个叫法是重排,回流触发的条件就是:对 DOM 结构的修改引发 DOM 几何尺寸变化的时候,会发生回流过程。具体一点,有以下的操作会触发回流:一个 DOM 元素的几何属性变化,常见的几何属性有width、height、padding、margin、left、top、border 等等, 这个很好理解。使 DOM 节点发生增减或者移动。读写 offset族、scroll族和client族属性的时候,浏览器为了获取这些值,需要进行回流操

2021-01-17 14:48:43 385

原创 「计算机网络」前端必备知识,看到就是赚到系列(上)

TCP专项复习下面蓝色标题为各个知识点的超链接,不记得忘了就点进去看看TCP 和 UDP 的区别面向连接、可靠性、基于字节流TCP和UDP的区别首先概况其基本的区别:TCP是面向连接的、可靠的、基于字节流的传输层协议UDP是一个面向无连接的传输层协议TCP三大核心:面向连接;所谓面向连接,指的是客户端与服务端的连接,在双方互相通信之前,TCP需要三次握手简历连接,而UDP没有相应的简历连接的过程可靠性;TCP可靠性主要体现在1有状态2可控制面向字节流;UDP数据传输基于数据

2021-01-11 20:25:18 213

原创 「JS刷题之路-栈」和我一起系统的刷题吧(内附思维导图)

JS刷题之路-栈最近一直在刷题,所以鸽了,这不我快马加鞭赶出了栈相关的JS题;题不在多,掌握了思维就会发现万变不离其宗(其实我觉着和刷数学题是差不多的感觉哈哈)文章目录JS刷题之路-栈思维导图LeetCode-栈一、20.有效的括号题目描述解题思路二、946. 验证栈序列题目描述解题思路三、921.使括号有效的最少添加题目描述解题思路前置知识(四五题的)首先什么是单调栈如何使用单调栈什么题适合用单调栈来做呢?四、901. 股票价格跨度题目描述解题思路五、739. 每日温度题目描述解题思路六、907.

2020-12-29 21:09:49 306

原创 「导航渲染流程」你真的知道从输入URL到页面展示发生了什么吗?(内附思维导图)

通过这篇文章当你被问到从URL输入到页面展示都发生了什么的时候,基本都能对答如流,甚至可以一直深入的说,说到面试官闭麦哈哈哈~以下是本文的思维导图,直接拿图点个赞再走吧 ~ 求求了 ~:(手机端可能看不清)获取高清PDF,请在微信公众号【小狮子前端Vue】回复【浏览器安全】导航流程1.用户输入URL不考虑用户输入搜索关键字的情况,如果用户输入的内容符合URL规则,浏览器就会根据URL协议,在这段内容上加上协议合成合法的URL2.loading状态用户输入完内容,按下回车键,浏览器导航

2020-12-03 22:34:19 242

原创 「浏览器安全」你可能需要的一份浏览器安全的总结(内附思维导图)

通过这篇文章你可以了解到同源策略、跨站脚本攻击(xss)、跨域请求伪造(CSRF)以及安全沙箱相关知识文章目录同源策略一、什么是同源策略二、安全和便利性的权衡面试题同源策略、CSP、CROS之间的关系?为什么XMLHttpRequest不能跨域请求资源?跨站脚本攻击(XSS)XSS can do恶意脚本是怎么注入的?如何阻止 XSS 攻击?CSRF攻击什么是 CSRF 攻击?如何防止 CSRF 攻击?同源策略一、什么是同源策略如果两个 URL 的协议、域名和端口都相同,我们就称这两个 URL 同

2020-11-30 21:58:08 577

原创 找出数组中重复的数字

找出数组中重复的数字在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 限制:2 <= n <= 100000 方法一:var findRepeatNumber = function(nums) {nums=nums.sort( (a,b)=>{

2020-11-25 18:20:20 513

原创 男友布置的任务之-JS红宝书每日一讲

文章目录第一章什么是JavaScript1.1、JavaScript历史回顾1.2、什么是JavaScript?1.3、JavaScript与ECMAScript的关系?1.4、JavaScript的不同版本?1.5、第一章小结第二章HTML 中的 JavaScript2.1、使用<\/Script>元素2.1.1 标签位置2.1.2 推迟执行脚本2.1.3 异步执行脚本2.1.4 动态加载脚本2.1.5 XHTML 中的变化2.2、行内脚本与外部脚本的比较2.3、确保 JavaScript..

2020-11-23 01:27:54 754

原创 [HTTP基础篇]输入网址,按下回车,这其中发生了什么

HTTP基础篇这是一个系列性的知识总结,我就不信这几篇文章看下来,还能搞不明白HTTP相关的知识文章目录HTTP基础篇输入网址回车后发生了什么?一、过程交互图二、详细过程1.浏览器从地址栏的输入中获得服务器的 IP 地址和端口号2.浏览器用 TCP 的三次握手与服务器建立连接3.浏览器向服务器发送拼好的报文4.服务器收到报文后处理请求,同样拼好报文再发给浏览器5.浏览器解析报文,渲染输出页面。三、题外话总结输入网址回车后发生了什么?这个问题很能考察你对HTTP的了解,很多面试官也很喜欢问,这

2020-11-16 22:03:58 728 1

原创 网站请求拦截,伪装浏览器发起请求pythonRequest

需要注意,使用Request伪装成浏览器发起HTTP请求,如果不设置headers中的User-Agent,默认的User-Agent是Python-urllib/3.5。因为一些网站肯将请求拦截,所以需要伪装成浏览器发起请求。import urllib.requesturl = "http://www.51job.com"headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.

2020-11-15 17:17:14 1143 1

原创 python:UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte..问题

错误代码:print(html.decode(‘utf8’))解决:print(html.decode("utf8","ignore")) #网页源代码出现这个异常报错是由于设置了decode()方法的默认第二个参数errors为严格(strict)形式造成的,改为ignore等就能避免错误了。...

2020-11-15 16:40:13 916

原创 [TCP专项复习]TCP灵魂之问

TCP与UDP的区别面向连接可靠性基于字节流三次握手连接一次握手过程及变化为什么不是两次为什么不是四次握手过程中可以携带数据吗同时发起挥手会怎样四次挥手断开连接半连接队列全连接队列SYN Flood攻击过程如何应对这种攻击剖析TCP报文收不字段源端口、目标端口序列号、ISN:ISN是如何计算的,为什么确认号标记位窗口大小校验和可选项TCP快速打开(TFO)原理首轮三次握手之后的三次握手TFO优势TCP时间戳作用计算往返时延RTT

2020-11-13 00:09:39 137

原创 [TCP灵魂之问]TCP 的拥塞控制、慢启动、慢启动阈值、拥塞避免、快速重传和快速恢复

说说 TCP 的拥塞控制?流量控制发生在发送端跟接收端之间而TCP 的拥塞控制主要处理的问题是,整个网络环境,网络特别差,特别容易丢包的情况。对于拥塞控制来说,TCP每条连接都需要维护两个核心状态:拥塞窗口(Congestion Window,cwnd): 是指目前自己还能传输的数据量大小; 接收窗口(rwnd)是接收端给的限制 拥塞窗口(cwnd)是发送端的限制 发送窗口大小 = min(rwnd, cwnd)慢启动阈值(Slow Start Threshold,ssthre

2020-11-12 23:54:15 3667

原创 [TCP灵魂之问]TCP 的流量控制、滑动窗口

说一说 TCP 的流量控制流量控制要做的事情,就是在通过接收缓存区的大小,控制发送端的发送。如果对方的接收缓存区满了,就不能再继续发送了。具体是如何做的呢?举个例子:首先双方三次握手,初始化各自的窗口大小,均为 200 个字节。假如当前发送端给接收端发送 100 个字节,那么此时对于发送端而言,可用窗口减少了 100 个字节。现在这 100 个到达了接收端,被放到接收端的缓冲队列中。不过此时由于大量负载的原因,接收端处理不了这么多字节,只能处理 40 个字节,剩下的 60 个字节被留在了缓冲队列

2020-11-12 23:17:19 128

原创 [TCP灵魂之问]TFO 流程、TCP快速打开(TFO)原理、TFO优势

TFO 流程首轮三次握手就是第二次握手的时候不是立即返回SYN+ACK了,而是返回计算得到的`SYN cookie`,放在TCP报文的Fast Open(快速打开)选项中,客户端拿到cookie将其缓存首先客户端发送SYN给服务端,服务端接收到。注意哦!现在服务端不是立刻回复 SYN + ACK,而是通过计算得到一个SYN Cookie, 将这个Cookie放到 TCP 报文的 Fast Open选项中,然后才给客户端返回。客户端拿到这个 Cookie 的值缓存下来。后面正常完成三次握手

2020-11-12 22:32:08 889

原创 [TCP灵魂之问]介绍一下 TCP 报文头部的字段

TCP 报文头部的字段源端口、目标端口如何标识唯一标识一个连接?答案是 TCP 连接的四元组——源 IP、源端口、目标 IP 和目标端口。那 TCP 报文怎么没有源 IP 和目标 IP 呢?这是因为在 IP 层就已经处理了 IP 。TCP 只需要记录两者的端口即可。序列号即Sequence number, 指的是本报文段第一个字节的序列号。序列号在 TCP 通信的过程中有两个作用:在 SYN 报文中交换彼此的初始序列号。保证数据包按正确的顺序组装。ISN即Initi

2020-11-10 19:08:14 1899

原创 半连接队列、全连接队列、SYN Flood 攻击、如何应对SYN Food攻击、半连接队列和 SYN Flood 攻击的关系

半连接队列当客户端发送SYN到服务端,服务端收到以后回复ACK和SYN,状态由LISTEN变为SYN_RCVD,此时这个连接就被推入了SYN队列,也就是半连接队列。全连接队列当客户端返回ACK, 服务端接收后,三次握手完成。这个时候连接等待被具体的应用取走,在被取走之前,它会被推入另外一个 TCP 维护的队列,也就是全连接队列(Accept Queue)。SYN Flood 攻击原理SYN Flood 属于典型的 DoS/DDoS 攻击。其攻击的原理很简单,就是用客户端在短时间内伪造大量不存在的

2020-11-10 18:20:24 956

原创 [TCP灵魂之问]四次挥手断开连接

四次挥手断开连接刚开始都处于established状态客户端端口,向服务器发FIN报文发送后,客户端变成FIN-WAIT-1状态–以及half-close(半关闭)状态,即无法向服务端发送报文只能接收服务端接收后向客户端确认,变成closed-wait状态客户端接收到了服务端的确认,变成fin-wait2状态服务端向客户端发送FIN,自己进入LAST-ACK状态,客户端收到服务端发来的FIN后,自己变成了TIME-WAIT状态,然后发送 ACK 给服务端。注意了,这个时候,客户端需要等

2020-11-10 15:54:34 298

原创 [TCP灵魂之问]三次握手建立连接

TCP三次握手的过程以最通俗易懂的恋爱过程来讲述TCP三次握手的过程第一次 我爱你男---------》女女方收到-》证明男方有爱的能力第二次 我收到你的爱,我也爱你男《----------------------女男方收到-》证明女方拥有爱与被爱的能力第三次 我收到了你的爱男----------------》女女方收到-》证明男方具备被爱的能力那么真实的握手又是怎么样的?真实的三次握手也是要确认双方的两样能力:发送能力与接收的能力。

2020-11-10 11:56:14 523

原创 [TCP灵魂之问]TCP和UDP的区别

TCP和UDP的区别首先概况其基本的区别:TCP是面向连接的、可靠的、基于字节流的传输层协议UDP是一个面向无连接的传输层协议TCP三大核心:面向连接;所谓面向连接,指的是客户端与服务端的连接,在双方互相通信之前,TCP需要三次握手简历连接,而UDP没有相应的简历连接的过程可靠性;TCP可靠性主要体现在1有状态2可控制面向字节流;UDP数据传输基于数据报,仅仅是继承了IP层的特性,而TCP为维护状态,将IP包变成了字节流有状态、可控制有状态;TCP会精准记录哪些数据发送了,被对方

2020-11-10 10:20:26 126

原创 CSS3选择器(CSS3与CSS的区别)

先介绍一些css1以及css2的选择器吧:.intro 选择所有class="intro"的元素#firstname 选择所有id="firstname"的元素* 选择所有元素p 选择所有<p>元素div,p 选择所有<div>元素和<p>元素div p 选择<div>元素内的所有<p>元素div>p 选择所有父级是 <div> 元素的 <p> 元素div+p 选择所有紧接着<div>元

2020-11-09 22:05:44 306

原创 S2SH基础

(一)Struts2基础Struts2 中大量使用拦截器来处理用户请求,从而允许用户的业务逻辑控制器与servlet api分离。Struts2框架结构:用户请求提交给strus2的核心控制器FilterDispatcher,FilterDispatcher根据请求调用相应的Aciton的execute()方法,并根据处理结果显示相应的jsp页面。其中,针对一些通用的功能,Struts2框架内置了许多拦截器,这些拦截器组成一个拦截器链,拦截器链会自动对请求应用这些通用型的功能。Struts2的控

2020-06-13 19:25:02 163 1

原创 编译原理( 词法分析程序 语法分析程序 语义分析程序 中间代码生成程序 代码优化程序 目标代码生成程序 符号表管理程序)

词法分析程序:读字符流的源程序、识别单词语法分析程序:层次分析,把源程序的单词序列组成语法短语(表示成语法树).语义分析程序:语义审查(静态语义)上下文相关性类型匹配类型转换中间代码生成程序:源程序的内部(中间)表示三元式、四元式、P-Code、C-Code、 U-Code、bytecode代码优化程序: 优化中间代码,节省时间、空间目标代码生成程序 :转换为机器指令上的绝对指...

2020-02-26 20:46:48 2197

原创 Java实现扫雷(简化版)

用Java写扫雷(简化版)目标实现Java代码目标实现随机生成雷在不同的位置,并且显示雷周围的数字,这两点是首要解决的问题,涉及算法。解决了这两个问题基本就可以了,再稍加点细节就可以玩扫雷啦。Java代码public static void main(String[] args) { String a[][] = new String[10][10]; int forrandom[...

2019-11-16 01:11:50 2224

Java的全方位概述及环境搭建_笔记

更直观清晰的Xmind思维导图帮助你Java入门,涵盖内容包括1.编程语言介绍2.Java发展历史3.Java三大平台及职业发展方向4.什么叫程序5.编程语言及编程工具6.编程语言运行机制7.Java开发环境搭建8.第一个Java程序9.代码编译执行及常用命令;最后希望我的一点点帮助能让你少走弯路哟

2020-11-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除