首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

网络安全自学篇(十四)| Python攻防之基础常识、正则表达式、Web编程和套接通信(一)

正则表达式(RegEx)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。例如,如果获取里面的ip地址,就需要使用正则表达式实现。...套接是一种具有之前所说的“通信端点”概念的计算网络数据结构,网络化的应用程序在开始任何通信都必须创建套接。相当于电话插口,没它无法通信,这个比喻非常形象。...要创建TCP套接就得创建时指定套接类型为SOCK_STREAM。TCP套接这个类型表示它作为流套接的特点。...要创建UDP套接就得创建时指定套接类型为SOCK_DGRAM。这个名字源于datagram(数据报),这些套接使用网际协议来查找网络主机,整个系统叫UDP/IP。...(四) socket()模块函数 使用socket模块的socket()函数来创建套接

2.2K20

WebSockets实战:在 Node 和 React 之间进行实时通信

WebSocket 通信使用WS(端口80)或WSS(端口443)协议在单个 TCP 套接上进行。...现状 从历史上看,创建需要实时数据通讯(如游戏或聊天应用程序)的 Web 应用需要滥用 HTTP 协议来建立双向数据传输。...由于数据是通过单个 TCP 套接连接提供的,因此连接限制不再是问题。 ---- 实战教程 正如介绍中所提到的,WebSocket 协议只有两个议程。...为此将分析一个 Node.js 服务器并将其连接到使用 React.js 构建的客户端上。...将编写一个基本的实时文档编辑器,用户可以将它们连接在一起并编辑文档。跟踪了两个事件: 用户活动:每次用户加入或离开时,都会将消息广播给所有连接其他的客户端。

2.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

JavaScript 是如何工作的:深入网络层 + 如何优化性能和安全

为了使网络层高效,它需要扮演的角色不仅仅是一个简单的套接管理器。它提供给我们的是一种非常简单的资源获取机制,实际上它是一个具有自己的优化标准、API 和服务的完整平台。 ?...(所有主要浏览器将最大池大小限制为6个套接) JavaScript 和 WebAssembly 不允许我们管理单个网络套接的生命周期,这是一件好事!...浏览器可以优化所有套接的带宽分配,也可以在预期请求时打开套接。 正如之前提到的,这一切都由浏览器管理,不需要我们做任何工作,这并不意味着我们什么都做不了。...网络安全和沙盒 允许浏览器管理单个套接还有另一个非常重要的目的:通过这种方式,浏览器能够不受信任的应用程序资源执行一致的安全和策略约束。...客户端创建一个随机的 Pre-Master Secret,并使用服务器证书中的公钥其进行加密,将加密的 Pre-Master Secret 发送到服务器。

77030

正则表达式、网络爬虫和套接通信入门

正则表达式(RegEx)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。例如,如果获取里面的ip地址,就需要使用正则表达式实现。...套接是一种具有之前所说的“通信端点”概念的计算网络数据结构,网络化的应用程序在开始任何通信都必须创建套接。相当于电话插口,没它无法通信,这个比喻非常形象。...要创建TCP套接就得创建时指定套接类型为SOCK_STREAM。TCP套接这个类型表示它作为流套接的特点。...要创建UDP套接就得创建时指定套接类型为SOCK_DGRAM。这个名字源于datagram(数据报),这些套接使用网际协议来查找网络主机,整个系统叫UDP/IP。...文章如果你有帮助、有感悟,就是最好的回报,且看且珍惜!

1.3K20

超详细的Socket通信原理和实例讲解

Socket 是什么以及创建过程一个数据包经由应用程序产生,进入到协议栈中进行各种报文头的包装,然后操作系统调用网卡驱动程序指挥硬件,把数据发送到端主机。整个过程的大体的图示如下。...现在有个问题,Socket 是如何创建的呢?Socket 是和应用程序一起创建的。...应用程序中有一个 socket 组件,在应用程序启动时,会调用 socket 申请创建套接,协议栈会根据应用程序的申请创建套接:首先分配一个套接所需的内存空间,这一步相当于是为控制信息准备一个容器...,只有容器并没有实际作用,所以你还需要向容器中放入控制信息;如果你不申请创建套接所需要的内存空间,你创建的控制信息也没有地方存放,所以分配内存空间,放入控制信息缺一不可。...至此套接创建就已经完成了。套接创建完成后,会返回一个套接描述符给应用程序,这个描述符相当于是区分不同套接的号码牌。根据这个描述符,应用程序在委托协议栈收发数据时就需要提供这个描述符。

1.2K20

三十三.Python攻防之正则表达式、网络爬虫和套接通信入门(2)

正则表达式(RegEx)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。例如,如果获取里面的ip地址,就需要使用正则表达式实现。...套接是一种具有之前所说的“通信端点”概念的计算网络数据结构,网络化的应用程序在开始任何通信都必须创建套接。相当于电话插口,没它无法通信,这个比喻非常形象。...要创建TCP套接就得创建时指定套接类型为SOCK_STREAM。TCP套接这个类型表示它作为流套接的特点。...要创建UDP套接就得创建时指定套接类型为SOCK_DGRAM。这个名字源于datagram(数据报),这些套接使用网际协议来查找网络主机,整个系统叫UDP/IP。...---- (四) socket()模块函数 使用socket模块的socket()函数来创建套接

1.1K20

socket阻塞与非阻塞,同步与异步IO模型

使用socket()函数和WSASocket()函数创建套接时,默认的套接都是阻塞的。...当使用socket()函数和WSASocket()函数创建套接时,默认都是阻塞的。在创建套接之后,通过调用ioctlsocket()函数,将该套接设置为非阻塞模式。...因为该做法系统造成的开销是很大的,并且应用程序至少要调用recv()函数两次,才能实际地读入数据。较好的做法是,使用套接的“I/O模型”来判断非阻塞套接是否可读可写。    ...这种套接使用上存在一定难度,只要排除了这些困难,它在功能上还是非常强大的。通常情况下,可考虑使用套接的“I/O模型”,它有助于应用程序通过异步方式,同时一个或多个套接的通信加以管理。...2、select低效是因为每次它都需要轮询。低效也是相对的,视情况而定,也可通过良好的设计改善

3K10

计算机网络:协议栈的转发功能如何工作?

大致流程:服务器启动的时候会创建套接等待客户端连接,客户端在使用网络请求的时候创建套接;操作系统去连接这两个套接之间的管道;这样就可以收发数据了;当通信完毕后,服务器\客户端任意一方发起断开连接的请求...,socket再返回给调用该函数的调用者创建套接客户端调用Socket库创建套接(和调用gethostByname一样),协议栈返回一个描述符给应用程序应用程序保存这个描述符描述符:用于区分不同的套接...图片连接服务器的套接使用创建套接时协议栈返回的描述符和服务器的IP端口填入Socket程序连接方法的参数中,描述符:协议栈通过描述符来判断使用哪个套接进行链接操作服务器IP地址:使用之前讲的通过DNS...通过端口号(后面讲)就可以找到服务器通信要使用的是哪个套接端口号是提前设定好的,服务器是电子邮件时会使用25号端口;Web访问是使用80号端口这样,客户端就知道和服务器的哪个套接进行通信了,但是服务器还不知道和客户端的哪个套接进行通信...待优化点每次访问Web时都需要经历这几个阶段并且一个网页中存在图片等信息时都会进行一次这样的操作,性能损耗不说还很浪费时间;因此后面出现了一次连接中可以请求多个信息正在参与2023腾讯技术创作特训营第二期有奖征文

17920

socket阻塞与非阻塞,同步与异步、IO模型

使用socket()函数和WSASocket()函数创建套接时,默认的套接都是阻塞的。...当使用socket()函数和WSASocket()函数创建套接时,默认都是阻塞的。在创建套接之后,通过调用ioctlsocket()函数,将该套接设置为非阻塞模式。...因为该做法系统造成的开销是很大的,并且应用程序至少要调用recv()函数两次,才能实际地读入数据。较好的做法是,使用套接的“I/O模型”来判断非阻塞套接是否可读可写。...这种套接使用上存在一定难度,只要排除了这些困难,它在功能上还是非常强大的。通常情况下,可考虑使用套接的“I/O模型”,它有助于应用程序通过异步方式,同时一个或多个套接的通信加以管理。...64位机默认是2048. 2、 socket进行扫描时是线性扫描,即采用轮询的方法,效率较低: 当套接比较多的时候,每次select()都要通过遍历FD_SETSIZE个Socket

1.5K20

【java网络】编程基础

套接是两个主机之间逻辑链接的端点,可以用于发送和接收数据,Java套接的处理非常类似于输入输出操作的处理,因此,程序从socket中读写就像从文件中读写一样容易 Java支持流套接和数据报套接...上各处的用户都可能与它建立连接。...new ThreadClass(socket); thread.start(); } 服务器套接可以有多个连接,while循环的每次迭代创建一个新的连接,无论何时,只要建立一个新的连接,就创建一个新线程来处理服务器与新客户之间的通信...每个在套接上发送和接收的分组都是独立编址和路由的 要创建服务器的数据报套接使用构造方法: DatagramSocket(int port) 将套接绑定到本地主机指定的端口上 要创建客户的数据报套接...,从某种意义上说,数据报程序设计不同于流套接编程,客户和服务器都使用DatagramSocket发送和接收分组 通常,将一个应用程序设计成服务器,使用指定端口的构造方法DatagramSocket(int

1.1K90

委托协议栈发送接受数据响应

大致流程: 服务器启动的时候会创建套接等待客户端连接,客户端在使用网络请求的时候创建套接;操作系统去连接这两个套接之间的管道;这样就可以收发数据了;当通信完毕后,服务器\客户端任意一方发起断开连接的请求...,socket再返回给调用该函数的调用者 创建套接 客户端调用Socket库创建套接(和调用gethostByname一样),协议栈返回一个描述符给应用程序应用程序保存这个描述符 描述符:用于区分不同的套接...连接服务器的套接 使用创建套接时协议栈返回的描述符和服务器的IP端口填入Socket程序连接方法的参数中, 描述符:协议栈通过描述符来判断使用哪个套接进行链接操作 服务器IP地址:使用之前讲的通过...通过端口号(后面讲)就可以找到服务器通信要使用的是哪个套接 端口号是提前设定好的,服务器是电子邮件时会使用25号端口;Web访问是使用80号端口 这样,客户端就知道和服务器的哪个套接进行通信了,但是服务器还不知道和客户端的哪个套接进行通信...待优化点 每次访问Web时都需要经历这几个阶段并且一个网页中存在图片等信息时都会进行一次这样的操作,性能损耗不说还很浪费时间;因此后面出现了一次连接中可以请求多个信息

58030

使用React和Node构建实时协作的白板应用

本文将展示如何使用React和Node构建一个提供实时协作白板的Web应用程序。 实时协作涉及多个用户在共同任务或项目上进行动态和即时的互动。...为了为这个项目设置我们的React应用程序,我们将执行以下操作: 创建React应用程序导航到您想要的目录,打开终端,并运行以下命令来创建一个新的React应用程序使用 create-react-app...在您的 React 项目中,导航到适当的目录并创建一个名为Whiteboard.js的新文件。...使用以下命令在我们的服务器上安装所需的依赖项: npm install express cors socket.io Express :一个受欢迎且灵活的Node.js框架,简化了构建强大的Web应用程序和...由于文章内容篇幅有限,今天的内容就分享到这里,文章结尾,提醒您,文章的创作不易,如果您喜欢的分享,请别忘了点赞和转发,让更多有需要的人看到。

41820

窥探Nginx内部实现:如何为性能和规模进行设计

尽管许多Web服务器和应用程序服务器使用简单的线程或基于进程的架构,NGINX具有复杂的事件驱动架构,使其能够在现代硬件上扩展到数十万个并发连接。...这些进程可以使用共享内存来共享缓存数据、会话持久性数据和其他共享资源。 Nginx工作者进程内部 ? 每个NGINX工作者进程都使用NGINX配置进行初始化,并由主进程提供一组监听套接。...大多数Web服务器和Web应用程序使用每个连接进程或线程模式来玩下棋游戏。每个进程或线程都包含将游戏玩到最后的指令。在服务器运行的过程中,它的大部分时间花费在阻塞上 - 等待客户端完成下一步。...Web服务器进程监听套接上的新连接(由客户端发起的新游戏)。 当它得到一个新游戏,它玩这个游戏,阻塞每次移动以等待客户的回应。...工作者进程创建一个新的连接套接。 连接套接上的事件意味着客户端已经进行了新的移动。工作者进程迅速回应。

93950

从IO复用谈epoll为什么高效

首先以select为例(poll类似),看下其调用过程 1.选择想要处理的套接,通过接口FD_SET(fd, &set)加入到set中; 2.调用select(max+1, &set,,..) 3....set中所有套接字调用FD_ISSET(fd,&set),查看fd上是否有事件发生 select存在的问题 单个进程能够监视的文件描述符的数量存在最大限制,通常是1024,当然可以更改数量,但由于select...,应用程序需要遍历整个数组才能发现哪些句柄发生了事件; select的触发方式是水平触发,应用程序如果没有完成对一个已经就绪的文件描述符进行IO操作,那么之后每次select调用还是会将这些文件描述符通知进程...可以看到epoll比select高效的地方在于,其返回的就是所有已经发生事件的套接,而不需要像select那样需要在用户态去判断每个套接上是否有事件发生。...对于select来说,用户态每一个套接的事件监测都是有效的。 但是select有一个问题是,每次去调用select之前,都要重置套接set。

86080

Golang中用到的的Websocket库

套接是基于 Unix 和 Windows 的操作系统的关键部分,它们使开发人员可以更轻松地创建支持网络的软件。应用程序开发人员可以在他们的程序中包含套接,而不是从头开始构建网络连接。...由于网络套接用于多种网络协议(HTTP、FTP 等),因此可以同时使用多个套接套接是由套接应用程序编程接口 ( API )定义的一组函数调用创建使用的。...这些套接通常是面向数据报的,尽管它们的确切特性取决于协议提供的接口。大多数应用程序使用原始套接。提供它们是为了支持新通信协议的开发,并提供现有协议更深奥的设施的访问。...WebSockets 解决了开发实时 Web 应用程序的许多令人头疼的问题,并且与传统 HTTP 相比有几个好处: 轻量级报头减少了数据传输开销。 单个 Web 客户端只需要一个 TCP 连接。...它每个操作的分配更少,每次分配使用的内存和时间更少。此外,它的 I/O 分配为零。此外,Gobwas 拥有创建 WebSocket 客户端-服务器交互和接收消息片段所需的所有方法。

1.9K20

http与socket的区别

大家好,又见面了,是你们的朋友全栈君。 1、TCP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。...由于HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”,要保持客户端程序的在线状态,需要不断地向服务器发起连接请求。...为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接(Socket)接口。...3.2 建立socket连接 建立Socket连接至少需要一套接,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。...4、SOCKET连接与TCP连接 创建Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该Socket连接就是一个TCP

45820

网络拾遗之Socket

简明扼要 套接的实体就是「通信控制信息」 「协议栈」是根据套接中记录的控制信息来工作的 「描述符」相当于用来区分协议栈中的「多个套接」的号码牌 通信操作中使用的控制信息分为「两类」。...「协议栈是根据套接中记录的控制信息来工作的」 创建套接时,首先分配一个套接所需的「内存空间」,然后向其中写入初始状态。然后,将表示这个套接的「描述符」告知应用程序。...应用程序传递来的信息以及从通信对象接收到的信息都会保存在这里,还有收发数据操作的「执行状态」等信息也会保存在这里,「协议栈」会根据这些信息来执行每一步的操作。...❝通信操作中使用的控制信息分为「两类」。 (1) 「头部」中记录的信息 (2) 「套接」(协议栈中的内存空间)中记录的信息 ❞ 3....当然,我们这里只是从整个宏观角度,描述了一下,网络包的生成。其实,其中还涉及到 TCP/IP协议栈网络包的处理。这个我们也会有对应的文章进行介绍。

31120

聊聊第一个开源项目 - CProxy

初衷 最近在学C++,写个项目练练手。网络比较感兴趣,之前使用过ngrok(GO版本的内网穿透项目),看了部分源码,想把自己的一些优化想法用C++实现一下,便有了这个项目。...读方向上,内核会将套接设置为不可读,任何读操作都会返回异常; 输出方向上,内核会尝试将发送缓冲区的数据发送给端,之后发送fin包结束连接,这个过程中,往套接写入数据都会返回异常。...若端还发送数据过来,会返回一个rst报文。 注意:套接会维护一个计数,当有一个进程持有,计数加一,close调用时会检查计数,只有当计数为0时,才会关闭连接,否则,只是将套接的计数减一。...howto = 1 关闭连接的写方向,会将发送缓冲区上的数据发送出去,然后发送fin包;应用程序套接的写入操作会返回异常(shutdown不会检查套接的计数情况,会直接关闭连接) howto =...每次系统调用,都需要切换CPU上下文,而且,两次拷贝都需要CPU去执行(CPU copy),所以,大量的拷贝操作,会成为整个服务的性能瓶颈。

65420

socket阻塞与非阻塞,同步与异步、IO模型

使用socket()函数和WSASocket()函数创建套接时,默认都是阻塞的。在创建套接之后,通过调用ioctlsocket()函数,将该套接设置为非阻塞模式。...因为该做法系统造成的开销是很大的,并且应用程序至少要调用recv()函数两次,才能实际地读入数据。较好的做法是,使用套接的“I/O模型”来判断非阻塞套接是否可读可写。...使用非阻塞模式套接,需要编写更多的代码,以便在每个Windows Sockets API函数调用中,收到的WSAEWOULDBLOCK错误进行处理。因此,非阻塞套接便显得有些难于使用。...但是,非阻塞套接在控制建立的多个连接,在数据的收发量不均,时间不定时,明显具有优势。这种套接使用上存在一定难度,只要排除了这些困难,它在功能上还是非常强大的。...通常情况下,可考虑使用套接的“I/O模型”,它有助于应用程序通过异步方式,同时一个或多个套接的通信加以管理。

1.7K30
领券