网络编程
文章平均质量分 92
king_weng
当才华配不上野心时,就静下心来学习吧!
展开
-
跨域资源共享CORS
1、背景 在前后端分离的开发模式中,数据的获取并非同源,所有就出现了跨域的问题。什么时候产生跨域呢?广义的跨域是值浏览器为了一定的安全因素,增加了同源策略。有违同源策略的操作都是被禁止的,这个时候就会发生我们所说的跨域。如果有没有同源策略,则会发送请求发出去了,数据没回来。狭义的跨域是指ajax请求无法完成。2、简介 CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。允许浏览器向跨源服务器,发出XMLHt...原创 2021-04-07 16:40:10 · 260 阅读 · 0 评论 -
http解析库http-parser
一、http-parser简介1、简介 http-parser是一个用C编写的HTTP消息解析器,可以解析请求和响应,被设计用于高性能HTTP应用程序。它不会进行任何系统调用及内存分配,它不会缓冲数据,它可以被随时中断。根据你的体系结构,每个消息流只需要大约40个字节的数据(在每个连接的web服务器中。2、特征不依赖第三方库 处理持续流 分块解码 支持Upgrade 防止缓冲区溢出攻击3、可以从HTTP消息中解析下列信息报头域及值(Header fields and...原创 2021-04-07 16:29:13 · 5125 阅读 · 1 评论 -
纤程
1、定义 纤程是 fiber , 是由操作系统实现的一种轻量化线程上的一个执行结构。 通常是多个fiber共享一个固定的线程, 然后他们通过互相主动切换到其他fiber来交出线程的执行权.。各个子任务之间的关系非常强。 在Windows2000/XP中,纤程(fiber)相当于用户级别的线程或轻进程.纤程由Win32库函数支持,对核心是不可见的.纤程可以通过SwitchToFiber切换至另一合作纤程,以实现合作纤程之间的协同。2、优缺点(1)优点消耗小,切...原创 2021-01-29 16:08:22 · 1120 阅读 · 0 评论 -
C++中协程——State Threads
一、协程简介1、简介 协程(coroutine)不是进程或线程,其执行过程更类似于子例程,或者说不带返回值的函数调用。一个程序可以包含多个协程,可以对比与一个进程包含多个线程。我们知道多个线程相对独立,有自己的上下文,切换受系统控制。而协程也相对独立,有自己的上下文,但是其切换由自己控制,当前协程切换到其他协程由当前协程来控制。 协程调度单位减小到函数,上下文切换不需要内核参与,不存在系统调用。上下文切换开销降到最低,系统调用降到最低,没有锁竞争,没有信号处理。保留了程序...原创 2021-01-26 17:18:23 · 1762 阅读 · 1 评论 -
epoll及实例(二)
1、epoll工作原理 epoll通常使用epoll_ctreate()、epoll_ctl()和epoll_wait()这三个函数来处理epoll文件系统中的句柄资源。epoll无序遍历所有被侦听的句柄,只要遍历被唤醒而加入read队列的句柄即可,从而达到处理大量并发任务的能力。(1)epoll_create() int epoll_create(int size); 调用epoll_create()时会建立一个epoll对象/句柄(epoll文件系统会为此对象分...原创 2020-05-15 15:18:44 · 575 阅读 · 0 评论 -
wireshark抓包分析
一、ISO五层模型Frame 125172: 物理层数据帧概况。 Ethernet II, Src: 数据链路层以太网帧头部信息。 Internet Protocol Version 4, Src: 互联网层IP包头部信息。 Transmission Control Protocol, Src Port: 传输层数据段头部信息,此处是TCP协议。 Hypertext Transfe...原创 2020-04-27 09:55:50 · 6065 阅读 · 0 评论 -
http断点续传原理:http头Range和Content-Range
1、断点续传原理 断点续传是从HTTP/1.1开始支持的。而在断点续传的请求中主要用到的是http头中的Range和Content-Range这两个字段。(1)Range 用于请求头中,指定第一个字节的位置和最后一个字节的位置,一般格式:Range:(unit=first byte pos)-[last byte pos](2)Content-Rang...原创 2020-04-22 20:16:24 · 3430 阅读 · 0 评论 -
Java网络通信
一、TCP程序设计1、InetAddress类 java.net包中的InetAddress类是与IP地址相关的类,利用该类可以获取IP地址、主机地址等信息。InetAddress类的常用方法如下表所示。注:InetAddress类的方法会抛出UnknownHostException 异常,所以必须进行异常处理。这个异常在主机不存在或网络连接错误时发生。2、Serv...原创 2020-03-15 00:05:39 · 503 阅读 · 0 评论 -
C++网络编程之poll
poll机制与select机制类似,通过管理文件描述符来进行轮询,效率更高,并且处理的连接个数不受内核的限制。1、poll函数# include <poll.h>int poll ( struct pollfd * fdarray, unsigned int nfds, int timeout);参数:(1)fdarray:可读套接字,是一个指向数组的...原创 2020-01-11 16:00:02 · 3468 阅读 · 0 评论 -
C++中的HTTP协议
1、HTTPHyper Text Transfer Protocol(超文本传输协议)。是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。在Internet中所有的传输都是通过TCP/IP进行的。HTTP协议作为TCP/IP模型中应用层的协议也不例外。HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的H...原创 2019-03-31 21:25:18 · 12208 阅读 · 2 评论 -
TCP、UDP、网络编程
1、TCP 的网络编程开发分为服务器端和客户端两部分,常见的核心步骤和流程如下:(1)TCP服务端编程的一般步骤为:调用socket函数,创建一个套接字描述符。 创建网络地址结构,指定要监听的IP和端口号。 调用bind函数,将套接字描述符与网络地址结构绑定。 调用listen函数,将套接字描述符转为监听套接字,表示该描述符是用于从指定地址和端口接收连接的。 调用accept函...原创 2018-10-27 00:38:13 · 320 阅读 · 0 评论