
计算机网络
文章平均质量分 90
qq_41111491
这个作者很懒,什么都没留下…
展开
-
HTTPS是如何保证安全的?
为什么需要HTTPS?简单的答案就是http不是安全的协议。如何保证HTTP的安全性?机密性对数据保密,只能被可信的人访问,其他人不可见。完整性内容不可被第三者修改身份认证第三方认真机构证明不可否认不能否认发生过的事HTTPS中的S如图:SSL/TLSSSL即安全套接层(Secure Socket Layer),处于OSI模型中的第...原创 2020-03-20 22:15:43 · 677 阅读 · 0 评论 -
HTTP服务是如何开始的?
HTTP是什么?HTTP 就是超文本传输协议,也就是 HyperText Transfer Protocol。HTTP的内容?本章应该掌握的关键字:URI:统一资源标识符 HTML:超文本标记语言,描述超文本文档 HTTP:超文本传输协议,传输超文本http 版本发展以及新添功能http 0.9 只有get方法,纯文本形式,只读,短链接 http 1....转载 2020-03-16 19:21:56 · 275 阅读 · 0 评论 -
如何"愉快的"填写问卷星
从业务开发,了解http本质。问卷星代刷方法:python+selenium 通过自动化测试工具正常填写,方法低效,容易出现安全检测(本文不讲)。 post请求,模拟包发送,简单快捷,跳过安全检测,缺点:需要对http协议有所了解,对请求包进行分析。开始设计问卷,我将从测试简单的单选,多选,填空上进行请求包分析。选择一款带有右键检查的浏览器,本文采用google浏览器。...原创 2020-03-13 01:34:23 · 4023 阅读 · 2 评论 -
高性能http服务器:I/O模型与多线程模型
网络编程实战 33讲:I/O模型和多线程模型实现盛延敏main reactor线程是一个acceptor线程,阻塞至event_dospathcer的dispatch方法上。等待事件发生,连接完成,创建tcp_connection以及channel对象 主线程如何判断子线程已经完成初始化并启动,而继续执行? 子线程阻塞在dispatch上,一旦事件发生,查找channel_map,找...翻译 2020-02-13 16:47:48 · 331 阅读 · 0 评论 -
高性能HTTP服务器:设计和思路
设计需求reactor模型,可以灵活使用ppoll/epoll事件分发机制 主从 reactor模型加线程池模式。将连接和读写分离 http协议内容解析大概可以分为这三块进行实现。主从Reactor模型设计:主反应堆一直在感知连接建立事件,如果有连接成功建立,主反应堆线程通过accept方法获取已链接套芥子,按照一定算法选取一个从反应堆线程,并把链接号的套接字加入到这...翻译 2020-02-12 23:11:57 · 816 阅读 · 0 评论 -
异步I/O搜索
reactor模式与proactor模式的区别与联系阻塞/非阻塞 VS 同步异步阻塞I/O发起read请求,线程会被挂起,一直等到内核数据准备好,并把数据拷贝到应用程序的缓冲区中,拷贝过程完成,read请求调用才返回。第二种是非阻塞I/O。 非阻塞的read请求在数据未准备好的情况下立即返回,应用程序可以不断轮旬内核,直到数据准备好,内核将数据拷贝到应用程序缓冲,...翻译 2020-02-09 20:44:19 · 191 阅读 · 0 评论 -
linux利器:epoll的前世今生
非阻塞I/O加上I/O复用,渐渐帮助我们在高性能网络编程这个领域搭建了初步的基石/epoll增添足够的动力.select poll epoll 的区别由图可知 epoll的性能是最好的,也很稳定,变化不大epoll还是一种I/O多路复用技术epollepoll通过监控注册的描述字,来进行I/O事件的分发处理。不同于poll的是,epoll提供 level-tri...翻译 2020-02-08 20:24:45 · 401 阅读 · 0 评论 -
I/O多路复用遇上线程:使用Poll单线程处理所有I/O事件
fork进程和pthread线程来处理多并发,这两种技术使用简单,但是性能却会随着并发数的上涨而快速下降,并不能满足极端的高并发的需求。更好的方法 I/O事件分发事件驱动设计:GUI,Web事件驱动的好处时占用资源少,效率高,可扩展性强,是支持高性能高并发的不二之选设计的思想时,一个无限循环的事件分发线程在后台运行,一旦用户在界面上产生某种操作一个事件会被产生并放置到事件队列中,这个事...翻译 2020-02-08 20:23:52 · 285 阅读 · 0 评论 -
epoll源码剖析 上
epoll的性能分析epoll的性能凭什么就要比poll或者select好呢?一个是事件集合: 在每次使用poll或者select之前,都需要准备一个事件集合,传递给内核,进行分析 并在内核空间构建相应的数据结构来完成对事件集合的注册。 epoll则不是这样,epoll维护了一个全局事件集合,通过epoll句柄,可以操纵这个事件的集合,增加,删除或修改这个事件集合...翻译 2020-02-08 20:22:42 · 103 阅读 · 0 评论 -
使用阻塞I/O和线程模型:换一种轻量的方式
线程方式 进程切换上下文的代价时比较高的,轻量级的模型可以处理多用户链接请求,这就是线程模型线程由操作系统内核管理,每个线程都有自己的上下文,包括一个可以唯一标识线程的ID,栈,程序计数器,寄存器等。在同一个进程中,所有的线程共享该进程的整个虚拟地址空间,包括代码,数据,堆,共享库。线程池...转载 2020-02-07 01:26:17 · 131 阅读 · 0 评论 -
非阻塞I/O:提升性能的加速器
非阻塞I/O配合I/O多路复用 是高性能网络编程中的常见技术阻塞 VS 非阻塞当应用程序调用阻塞I/O完成某个操作时,应用程序应该被挂起,等待内核完成操作,内核所作的事情是将CPU时间切换成其他有需要的进程,网络应用程序在这种情况下就会得不到CPU时间该做的事情当应用程序调用非阻塞I。O完成某个操作时,内核立即返回,不会把CPU时间切换给其他进程,应用程序返回后,CPU时间继续完成其他...翻译 2020-02-03 14:12:21 · 207 阅读 · 0 评论 -
poll 另一种多路复用
select方法是多个UNIX平台支持的非常常见的I/O多路复用技术,通过描述符集合来表示检测的I/O对象,通过三个不同的描述符集合来描述检测I/O事件,可读,可写,异常 。 select 的缺点是 所支持的文件描述符的个数是有限的。在Linux系统中,selectd的默认最大值为1024poll函数的原型与内乎交互的数据结构有所变化,也突破了文件描述符的个数限制int poll...翻译 2020-02-02 23:29:29 · 158 阅读 · 0 评论 -
i/o 多路复用
多路复用的作用是把标准输入,套接字都看作I/O的一路,多路复用的意思,在任何一路有事件发生,通知应用程序去处理相应的I/事件 。int select(int maxfd,fd_set *readset,fd_set *writeset,fd_set *exceptset,timeval *timeout)maxfd待测试的描述符基数,三个描述符集合 读描述集 写 ,异常描述集分别注...翻译 2020-02-01 23:52:37 · 110 阅读 · 0 评论 -
网络编程实战:检查数据的有效
对端的异常状况可以通过read调用,对EOF的判断,随时防范对方程序崩溃但是 不是每种情况都可以通过读操作来感知异常 比如服务器完全崩溃,或者网络中断的情况下,此时如果阻塞套接字,那么会一直阻塞在read等调用上,没有办法感知套接字异常其实有几种办法来解决这个问题第一个办法是给套接字的read操作设置超时,如果超过了一段时间就认为链接已经不存在,struct timeval ...翻译 2020-01-31 20:18:02 · 174 阅读 · 0 评论 -
网络编程实战 17 TCP 并不总是可靠的
故障分类通过是否有FIN包进行分类无Fin包很多原因导致网络中断,TCP程序并不能及时感知到异常信息,除非网络的其他设备。如路由器发出一条ICMP报文,说明目的网络或主机不可达,这个时候通过read或write调用就返回Unreachable的错误read设置超时将能检测write将重传多次后标识异常系统崩溃导致无FIN包特殊情况,崩溃后重启系统将返...翻译 2020-01-29 23:59:40 · 217 阅读 · 0 评论 -
极客网络编程实战14讲 UDP是否可以连接?
UDP是否可连接?udp也是可以用来connecttcp connect 调用引起TCP三次握手。UDP connect调用并不会引起和服务器目标端交互,不会触发所谓的握手和应答。为什么?主要是为了让应用程序能够接受 异步错误的信息。服务器不开启,客户端程序不会报错,会阻塞至recvfrom上connect操作,将UDP套接字建立了"上下文" 该套接字和端口进行绑定,...转载 2020-01-17 17:55:06 · 465 阅读 · 0 评论