为什么主动关闭方要经过2MSL才能进入CLOSED状态 MSL是Maximum Segment Lifetime英文的缩写——报文最大生存时间1.为了保证发送的最后一个ACK报文段能够被接收 可让TCP再次发送最后的ACK以防止这个ACK丢失2.防止”已失效的连接请求报文段”出现在本连接中,在发送完最后一个ACK报文后,再经过2MSL,就可以使本连接持续的时间内所产生的所有报文段都从网络中消失。 这样下一个新的连接就不会出现这种老的...
为什么是三次握手,改为两次可以吗 不能改为两次,会出现僵尸连接,浪费网络资源1.考虑一种特殊情况 客户端发送SYN包A1,由于网络链路问题,到达时间滞后 因为客户端迟迟收不到服务器的响应,以为丢包,清理A1,重发SYN包B1 B1顺利到达,响应B2,与客户端建立连接 A1姗姗来迟,响应A2,由于A1被清理,客户端不理会A2 但是服务器还是会维持这个僵尸连接2.避免SYN攻击...
为什么是四次挥手,不是三次挥手 在建立连接的时候,Server把响应客户端的请求和请求客户端的确认放在一起发送给客户端了,即第二次握手时有SYN+ACK而断开连接的时候,一个方向的断开,只是说明该方向数据已传输完毕,而另一个方向或许还有数据,所以得等到另一个方向数据也全部传输完成后,才能执行第三次挥手...
简述四次挥手 什么是四次挥手由于TCP连接是全双工的,断开一个TCP连接,需要客户端与服务器发送四个包来确认连接的断开简述四次挥手的过程:因为TCP是全双工的,因此,每个方向都要单独关闭当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着一方向不会再收到数据了,但是这个TCP连接上仍然能够发送数据,直到这一方也发送了FIN.首先进行关闭的一方执行主动关闭,...
什么是SYN攻击 什么是SYN攻击?原理:Client伪造大量的虚假ip,向Server发送SYN包Server在接收到SYN包后,会返回响应,并进入SYN_RECV状态,等待客户端的确认但是伪造的ip肯定不会给予响应,于是Server以为数据包丢失,不断重发,直到超时危害:这些伪造的SYN包会长期占用未连接队列,导致后来真实的ip无法加入队列,从而被丢弃,引起网络拥堵甚至网络瘫痪...
如何回答三次握手问题 什么是三次握手TCP是网络传输层的协议,提供面向连接的可靠的字节流服务,要通信得先建立连接所谓三次握手就是指,建立一个TCP连接时,需要CLient与Server发送三个包,确认连接的建立这一过程由Client执行connect触发简单描述下三次握手的具体过程第一次握手:Client将SYN置为1,seq=随机值j,将该数据包发送给Server,进入<font ...
select、poll、epoll之间的区别总结[整理] + 知乎大神解答 转 select、poll、epoll之间的区别总结[整理] + 知乎大神解答 2016年11月08日 15:37:15 阅读数:4907 ...
WSGI WSGI——Web Server Gateway Interface ————————Web服务器网关接口一、即Web服务器和Web应用程序之间的通用接口标准 WSGI 是作为 Web 服务器与 Web 应用程序或应用框架之间的一种低级别的接口, 以提升可移植 Web 应用开发的共同点。WSGI 是...
Python中的单例模式 1.使用newclass Singleton(object): __instance = None def __new__(cls, *args, **kw): if not cls.__instance: cls.__instance = super(Singleton, cls).__new__(cls, *args, **kw) ...
flask+MySQL 转载链接:https://www.jianshu.com/p/7e32074e4fad使用Flask-SQLAlchemy管理数据库Flask-SQLAlchemy是一个Flask扩展,它简化了在Flask应用程序中对SQLAlchemy的使用。SQLAlchemy是一个强大的关系数据库框架,支持一些数据库后端。提供高级的ORM和底层访问数据库的本地SQL功能。 模型定义ta...
后台访问权限控制 问题解决普通用户登录之后直接访问后台具体的视图函数的问题如果是普通用户访问后台的视图函数,直接跳转到项目主页,不再执行后续的逻辑判断后台后续要实现多个视图函数,如果每一个函数内部都去判断用户权限,那么代码重复率高,冗余代码较多所以得有一个统一判断入口,后台模块中,除了登录页面,后台的其他页面都要判断是否具有管理员权限采用的方式为:请求勾子中的 before_request,来请求之前...
Python——装饰器 1.装饰函数def outer(fun): def wrapper(): # 加入你的骚操作 return fun() return wrapper2.装饰带参函数def outer(fun): def wrapper(*args, **kwargs): # 加入你的骚操作 return fun...
session的安全性问题 转载地址:https://blog.csdn.net/u013205877/article/details/77512180没有绝对的安全!1.cookie我们都知道Http是一种无状态性的协议,这种协议不要求浏览器在每次请求中标明他自己的身份,每次发个请求回个相应就完事了,那怎么校验发请求的人的身份呢,这就催生了Cookies. 本质上Cookies就是http的一个扩展...
flask——新闻详情页,评论点赞 1.查出该新闻的所有评论 2.查出该用户所有点赞的评论 3.二者交集显示被用户点赞@news_blu.route("/<int:news_id>")@user_login_data@click_list_datadef news_detail(news_id): # 显示新闻 try: news = News.query.get(new...
flask中数据库的基本操作-增删改查 转载地址:https://blog.csdn.net/longting_/article/details/806581051.增加数据(就相当于增加一个实例对象)user1 = User(name='long',email='wertyui@qq.com',password='3456789',role_id=1)db.session.add(user1)db.session.co...
flask——CSRFToken保护 根据 csrf_token 校验原理,具体操作步骤有以下几步:1.后端生成 csrf_token 的值,在前端请求登录或者注册界面的时候将值传给前端,传给前端的方式可能有以下两种: 在模板中的 From 表单中添加隐藏字段 将 csrf_token 使用 cookie 的方式传给前端 2.在前端发起请求时,在表单或者在请求头中带上指定的 csrf_toke...
flask Session 操作 转载地址:http://www.cnblogs.com/chen0427/p/8886789.htmlSession的基本概念:session和cookie的作用有点类似,都是为了存储用户相关的信息。不同的是,cookie是存储在本地浏览器,session是一个思路、一个概念、一个服务器存储授权信息的解决方案,不同的服务器,不同的框架,不同的语言有不同的实现。虽然实现不一样,但是他们的目的...
CSRF攻击原理与防御手段 转载地址:http://www.phpddt.com/reprint/csrf.htmlCSRF概念CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解: 攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮...
Python + 高德JS——房源可视化(七):JS部分 载入房源信息map.on('complete', fun() ) // 地图加载完毕后调用fun这里把载入房源放到这个回调函数中1. 请求数据 1.通过ajax请求"/location_all"这个路径,获取房源坐标 2.遍历列表,实例化所有的点,图标为自定义图标 3.给marker设置属性code值为房源的id 4.给所有房源注册点击事件 5.把所有房源点,...
Python + 高德JS——房源可视化(六):JS部分 1.初始化地图var map = new AMap.Map("container", { resizeEnable: true, // 设置可改变窗口大小 zoomEnable: true, // 设置可缩放 center: [114.056078,22.604554], // 设置地图中心为深圳 zoom: ...