网络协议:HTTP/HTTPS协议和TLS/SSL
网络协议:HTTP/HTTPS协议和TLS/SSL
HTTP:广泛使用的网络协议,用于浏览器和服务器之间的请求和应答。基于TCP协议,用于从WWW服务器传输超文本到本地浏览器。
HTTPS:基于HTTP进行加密保护的版本,在其基础上添加了SSL(Secure Socket Layer)层以实现更高级别的安全性保障,支持加密传输和身份认证功能的网络通信方式
HTTP 与 HTTPS 的区别
- HTTPS 协议需要用到CA证书
- HTTPS 是超文本传输协议,信息是明文传输,HTTPS 是具有安全性的ssl加密传输协议
- HTTP和HTTPS 使用的是完全不同的连接方式,HTTP通常使用的是80,HTTPS 通常使用的是443
- HTTP的连接简单,无状态的;HTTPS 是ssl+HTTP协议构建的可加密传输、身份认证的网络协议,比HTTP安全
HTTP的特性
- 无状态性 - 每个请求独立,服务器不保留客户端信息
- 灵活性 - 支持多种数据格式,通过MIMIE类型描述
- 可拓展性 - 允许添加请求方法和状态码来拓展功能
- 请求/响应模型 - 客户端发送请求,服务器处理后返回响应
- 支持多种传输协议 - 如TCP、UDP
- 分层架构 - 可以与其他应用层协议结合使用
- 缓存控制 - 通过头部字段控制缓存策略
- 持久连接 - 默认采用持久连接,允许多个请求/响应在同一个连接中进行
- 支持代理和隧道
HTTP长短链接(1.0/1.1区别)
HTTP1.0中默认使用短链接,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。客户端浏览器访问某个HTML或其他类型Web页中包含Web资源,每遇到一个这样的Web资源浏览器就重新建立一个HTTP会话
HTTP1.1起,默认使用长链接,保持连接特性,长连接的优点是在同一个TCP连接中可发送多个请求和响应,减少了连接建立的延迟,在长连接的HTTP协议中响应头会有:Connection:keep-alive,额外的参数有timeout
和max
,指定连接的最大空闲时间和允许的最大请求数
HTTP请求方法
HTTP/1.1 协议中共定义了八种方法(也叫 “ 动作 ” )来以不同方式操作指定的资源
- GET - 向指定的资源发出 “ 显示 ” 请求
- HEAD - 与 GET 方法一样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。
- POST - 向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。
- PUT - 向指定资源位置上传其最新内容。
- DELETE - 请求服务器删除 Request-URI 所标识的资源。
- TRACE - 回显服务器收到的请求,主要用于测试或诊断
- OPTIONS - 这个方法可使服务器传回该资源所支持的所有 HTTP 请求方法
- // PATCH - 对资源进行部分修改。与 PUT 类似,但 PATCH 只更改部分数据而不是替换整个资源。
- CONNECT - 建立一个隧道用于代理服务器的通信,通常用于 HTTPS。
HTTP请求流程
- DNS解析域名得到IP地址
- 客户端与服务器建立连接(TCP三次握手)
- 客户端发起请求
- 服务器接收请求,根据端口、路径找到对应资源文件,响应源代码給客户端
- 客户端拿到请求到的数据(源代码),开始解析页面及请求资源
- 客户端渲染页面
- Web服务器断开连接(四次挥手)
HTTPS请求流程
HTTPS是一种应用层协议,本质上来说它是HTTP协议的一种变种。HTTPS比HTTP协议安全,因为HTTP是明文传输,而HTTPS是加密传输,加密过程中使用了三种加密手段,分别是证书,对称加密和非对称加密。HTTPS相比于HTTP多了一层SSL/TSL,其构造如下:
流程:
- 客户端向服务器发起HTTPS请求,连接到服务器的443端口
- 服务器将非对称加密公钥給客户端,以证书的形式传递
- 服务器接收到公钥进行验证,如果有问题则终止请求;无问题的话发送第一次HTTP请求,客户端随机生成一个私钥成为client key,用于数据加密
- 进行二次HTTP请求,将加密后的client key传递給服务器
- 服务器使用私钥解密,得到client key,使用其对数据进行堆成加密
- 将对称数据传递給客户端,客户端使用非对称解密,得到服务器发送的数据完成第二次HTTP请求
HTTPS的工作原理
- 用户使用https的url访问Web服务器,要求与Web服务器建立SSL连接
- Web服务器收到客户端请求后,会将网站的证书信息(包含公钥)传送一份給客户端
- 客户端的浏览器与Web服务器开始协商SSL连接安全等级,也就是信息加密的等级
- 客户端的浏览器根据双方同意的安全等级,建立会话密钥,利用网站的公钥将会话密钥加密,传送給网站
- Web服务器利用自己的私钥解密出会话密钥
- Web服务器利用会话密钥加密与客户端之间的通信
HTTP报文
请求报文
请求报文由四部分组成,分别是:请求行、请求头部、空行和请求数据
-
请求方法:常见的八种请求
-
URL(统一资源定位符):<协议>://<主机>:<端口>/<路径>,端口和路径是可省略的
- URI(统一资源标识符)
- Web上可用的每种资源( HTML文档、图像、音频、视频片段、程序等)都由一个通用资源标识符(Uniform Resource Identifier, 简称”URI”)进行定位。URL是一种具体的URI,URI 属于父类,而 URL 属于 URI 的子类
- URN(统一资源名称)
- URI(统一资源标识符)
-
HTTP协议版本:通常是1.0和1.1,目前常用的是1.1版本
-
请求头部:由Key: Value组成
- Connection:keep-alive/close表示是否需要建立TCP长连接/短链接
- 跨域 Access-Control-Request:前缀请求头
- 跨域 Access-Control-Allow:前缀响应头
-
空行:表示请求头部的结束,接下来为请求数据
-
请求数据:请求数据不在GET方法中使用,而在POST方法中使用。POST方法适用于需要客户填写表单的场合。与请求数据相关的最长使用的请求头部是Cntent-Type和Content-Length
响应报文
响应报文由四部分组成,分别是:状态行、响应头部、空行和响应体
-
HTTP状态码:
-
响应头部:
-
空行:响应头部的最后会有一个空行,表示响应头部结束,接下来为响应数据。与请求报文一致
-
响应体:用于存放需要返回给客户端的数据信息
HTTP断点续传
可以在传输中断后再从上次中断的地方继续传输文件,依赖客户端与服务器之间的协议,如HTTP/1.1中Range和Content-Range头部字段。
客户端会记录已经传输的文件部分,在中断后重新发送带有Range头部的请求,重新从上次中断的点开始传输,服务器根据请求返回文件剩余部分的数据,并在响应中包含Content-Range头部以告知客户端实际返回的数据范围。
其通常使用的场景有:大文件下载,视频播放,在线更新,远程备份,文件上传
原理
-
Range头部字段(请求):
作用:用于HTTP请求中,指定服务器应该返回哪一部分
格式:Range:bytes=start-and,start是请求的第一个字节偏移量(0 start),end是最后一个字节便宜量,如果end被省略则从start到文件末尾所有字节
-
Conent-Range头部字段(响应):
作用:Content-Range头部字段用于HTTP响应中,告知客户端实际返回的字节范围及整个实体总长度
格式:Content-Range:bytes start-end/total,start和and同上,total表示实体的字节数
-
客户端实现:
- 获取文件总大小:开始前发送HEAD请求获取资源大小
- 记录下载:下载过程中记录已下载文件大小
- 发送带有Range的请求:下载中断后,客户端根据已下载的文件构造Range头部请求,发送給服务器
- 接收并写入数据:客户端接收服务器返回的响应,将数据写入文件相应位置(追加)
-
服务器实现:
- 接收请求:接收客户端请求,解析Range头部需要返回的片段
- 读取并发送数据:服务器根据Range头部指定的范围读取文件数据并发送給客户端
- 设置Content-Range头部:响应中设置Content-Range头部,告知客户端返回的数据范围及整个文件大小
- 支持并发请求
-
注意:
- 文件锁定:确保文件不会被修改或删除
- 错误处理:处理异常
- 性能优化
HTTP缓存机制
缓存控制头
Cache-Control:指定响应缓存命令
- public:响应可以被任何缓存所缓存
- private:响应只适合单一用户,不应被共享缓存存储
- no-cache:强制缓存必须在使用之前重新验证
- no-store:不应缓存此响应
- max-age=
:指定响应最大缓存时间
Expires:提供一个绝对的到期时间,通常会被Cache-Control的max-age覆盖
协商缓存
- Last-Modified:服务器响应中发送此头部,表示资源最后修改时间
- ETag:服务器为资源生成的唯一标识符
强制缓存
- 浏览器在指定的缓存时间内再次请求相同资源时,可直接从缓存中获取,而不发送給服务器
内容编码
- 缓存可以根据内容编码进行优化,比如使用gzip压缩,可以减少传输数据量
缓存策略
- 浏览器缓存:浏览器根据HTTP头部信息决定缓存某个资源及缓存时间
- 代理缓存:中间代理服务器会根据相应HTTP头部进行缓存
HTTP无状态的解释
无状态是指协议对于事物没有记忆功能。假如后面的处理需要前面的信息,则前面的信息必须重传,这可能导致每次连接传送数据量增大。另一方面,服务器不需要前面信息时,应答就较快。直观的说,就是每个请求都是独立的,与前面的请求和后面的请求都是没有直接联系的
如何实现状态
web=http协议+状态机制+其他机制,可以通过Cookie、Session和Application实现Web的状态连接
HTTPS的缺点
- 握手阶段可能花费的时间更长,导致页面加载时间延长及功耗增加
- 与Http相比,https连接缓存效率较低,会导致数据开销和功耗增加
- SSL证书需要付费,功能越强大,价格越高;通常需要绑定Ip地址,无法在同一个Ip上绑定多个域名
- 尽管Https协议具有加密功能,但其加密功能范围有限,在控制CA根证书的情况下中间人攻击任然可行
网络体系结构分层
OSI七层架构
应用层 | 为用户提供服务 | Http(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议) |
---|---|---|
表示层 (数据处理) | 数据处理(编码,加密解密,压缩解压缩 | SSL/TLS(安全套接层/传输层安全协议)、JPEG、ASCII |
会话层 | 管理(建立、维护、重连)应用程序之间的会话 | RPC(远程过程调用) |
运输层 (承上启下) | 为两台主机进程之间的通信提供通用数据传输服务 | TCP/UDP(传输控制协议/用户数据报协议) |
网络层 | 路由和寻址(决定数据在网络的游走路径) | IP(互联网协议)、ICMP(互联网控制消息协议) |
数据链路层 (数据通信) | 帧编码和误差纠正控制 | 以太网、WIFI(802.11)、PPP(点对点协议) |
物理层 | 透明的传输比特流 | 网线、光纤、无线信号 |
TCP/IP四层模型
应用层 | 实现不同类型的网络服务 |
---|---|
传输层 | 确保数据传输 |
网络层 | 负责数据包的路由和转发 |
网络接口层 | 负责管理网络硬件和物理 |
常见传输协议
应用层
- HTTP - 客户端和服务器之间传输超文本数据,通常用于Web浏览器和Web服务器之间通信
- FTP - 客户端和服务器之间传输文件,支持上传和下载文件的功能
- SMTP - 邮件服务器之间传输文件,负责发送邮件
- POP3 - 邮件服务器下载邮件到本地服务器,负责接收邮件
- IMAP - 接收邮件协议,在服务器上管理文件
- DNS - 域名解析为对应Ip地址,从而实现域名和Ip地址之间的映射
- HTTPS - Http的安全版本,通过SSL/TLS加密传输数据,保证通信过程中的安全
- SSH - 远程登录和执行命令,提供了加密的网络连接,保证了通信的安全性
- SNMP - 网络设备之间的管理和监控,实现对网络设备的远程配置和监控
- Telnet - 远程登录和执行命令,类似SSH,不提供加密
传输层
- TCP - 可靠、面向连接的传输服务,确保数据可靠性、顺序性和完整性。适用于对传输数据质量要求较高的场景,如文件传输、网页浏览等
- UDP - 无连接的数据传输服务,不保证数据的可靠性,不保证数据的顺序性和完整性。适用于实时性要求较高、对数据传输质量要求不严格的场景
网络层
- IP - 网络中传输数据包,Ip协议定义了数据包的格式、寻址方式和路由选择等信息,是互联网的基础
- ICMP - IP网络中传递控制消息和错误信息。通常用于网络设备间的通信,如路由器和主机之间的通信,检测网络连通性和故障诊断
- ARP - IP地址映射成MAC地址。其在局域网中使用,通过发送ARP请求获取目标设备的MAC地址,从而实现数据包的传输
- RARP - 将MAC地址映射为IP地址。其通常用于无盘工作站等设备
- IPV6 - 解决IPV4地址空间不足的问题。IPV4的地址为32位,IPV6地址位128位,其提供了更大的地址空间
网络接口层
- 以太网协议(Ethernet)- 常见的局域网技术,使用MAC地址进行帧传输和接收
- 无线局域网协议(WIFI) - 用于无线局域网数据传输,通常基于IEEE802.11标准
- 点对点协议(PPP) - 建立点对点连接协议,通常用于拨号连接和虚拟专用网(VPN)等
- 数据链路层交换协议(DLC) - 用于在数据链路层数据交换和管理的协议,如HDLC、SLIP和PPP等
SSL
Sercure Socket Layer,安全套接字,面向连接的网络层协议如(TCP/IP)和应用层协议之间的一种协议。其通过互相认证、使用数字签名确保私密性,以实现客户端和服务器之间的安全通讯。SSL共有三个版本,目前基本使用的是3.0。
作用:
- 确保数据发送到正确的客户机和服务器,保证互联安全
- 加密数据防止数据中途被窃取
- 维护数据的完整性
SSL协议的组成
记录协议 + 握手协议
- 记录协议(SSL Record Protocol):建立在可靠的传入协议(如TCP)之上,为高层协议提供数据封装、压缩、加密的基本功能支持
- SSL握手协议(SSL HandShake Protocal):建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等
认证流程
- 客户端向服务端发送开始信息,开始新的会话连接
- 服务器根据客户信息确认是否需要生成密钥对,如需要则服务器在响应客户的“Hello”信息时包含公钥
- 客户根据收到的服务器响应信息,产生密钥对,并用服务器的公钥加密后将自己的公钥传給服务器
- 服务器用私钥解密客户端的公钥,并返回給客户一个用客户端加密的信息,以此让客户认证服务器
TLS
Transport Layer Security,安全传输层协议,是一种加密通道的规范,利用对称加密、公私钥不对称加密及其密钥交换算法,CA系统进行加密且信任的信息传输。TLS共有三个版本分别是1.0、1.1、1.2,可以说TLS就是SSL的新版本3.1,通常使用的都是1.0
TLS协议组成
记录协议 + 握手协议
- 记录协议:是一种分层协议,支持信息传输、将数据分段到可处理块、压缩数据、应用MAC 、加密以及传输结果等。对接收到的数据进行解密、校验、解压缩、重组等,然后将它们传送到高层客户机
- 握手协议:由三个子协议组成,允许对等双方在记录层的安全参数上达成一致、自我认证、例示协商安全参数、互相报告出错条件。
两个基本特性
- 私有 - 对称加密用数据加密(DES、RC4等),对称加密所产生的密钥对每个连接都是唯一的,且密钥基于另一个协议(如握手协议)协商,记录协议也可以不加密使用
- 可靠 - 信息传输包括使用密钥的MAC进行信息完整性检查
SSL和TLS的区别
- TLS在SSL3.0基础上增加了其他内容,两者所支持的加密算法不同,不能互相操作,TLS相当于SSL3.1
- 两者记录格式一样,但版本号不同
- 报文鉴别码不同,TLS使用的是RFC-2104定义的HMAC算法
- 伪随机函数不同,TLS使用的是PRF伪随机函数将密钥扩展成数据块,PRF使用两种散列算法,只有当两种算法都暴露才会不安
- TLS有更严密的报警码,TLS不支持Fortezza密钥交换、加密算法和客户证书
HTTP请求/响应步骤
-
客户端连接到Web服务器
浏览器与服务器端口建立TCP套接字连接,如www.baidu.com
-
发送HTTP请求
通过TCP套接字,客户端向Web发送文本的请求报文,报文组成为请求行、请求头、空行和请求数据四部分组成
-
服务器接受请求并返回HTTP响应
Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字
-
释放TCP连接
-
客户端浏览器解析HTML内容
网络通信协议:TCP/UDP
UDP
UDP协议为用户数据报协议,UDP是无连接通信协议,不能保证数据的完整性,在数据传输时,数据的发送端和接收端不需要逻辑连接。
UDP协议传输数据限制在64kb,超出范围不允许发送
适用场景:
消耗资源小,通信效率高,通常用于音频、视频和普通数据的传输。在使用UDP协议传输数据时,由于UDP面向无连接性,不能保证数据的完整性,所以传输重要数据时不建议使用UDP协议
TCP
TCP协议是面向连接的通信协议,传输数据之前,在发送端和接收端建立逻辑连接,提供两台计算机间可靠无差错的传输数据
适用场景:
面向连接的特性,TCP协议保证传输数据的安全,例如下载文件、浏览网页等
TCP三次握手
Transmission control protocal,传输控制协议,是一种面向连接、可靠的、基于字节流的运输层的数据传输协议。它是全双工模式
TCP建立连接时必须进行三次会话,也叫TCP三次握手,目的是为了确认双方的接收能力和发送能力是否正常
过程:
- 客户端进程创建传输控制块TCB,向服务器发出连接请求报文,报文首部SYN=1,初始序列号seq=x,TCP客户端进入SYN-SENT同步发送状态。证明客户端发送能力正常
- 服务器接收报文后,会向客户端发送确认报文,其中ACK=1,SYN=1,确认号ack=x+1,初始化序列号seq=y,服务器进入SYN-RCVD同步收到状态。证明服务器接收能力、发送能力正常
- 客户端收到报文后向服务器确认,报文为ACK=1,ack=y+1,序列号seq=x+1,建立连接成功后客户端进入ESTABLISHED已连接状态。证明客户端接收能力正常
TCP两次握手带来的情况:
客户端向服务端发送请求报文由于网络原因滞留,未能发送到服务器,此时连接请求报文失效,客户端会重新向服务端发送请求报文,之后与服务端建立连接,当连接释放后,由于网络通畅,第一次发送的请求报文会到达服务器,这条本该失效的报文会让服务端误认为客户端又发送了一次连接请求,两次握手建立好连接,此时客户端忽略了服务端发来的确认,也不发送数据,造成资源的浪费
如果采用三次握手的话,就算那条失效的报文发送到服务器端,服务器端确认并向客户端发送报文,但此时客户端不会发出确认,由于客户端没有确认,由于服务器端没有接收到确认,就会知道客户端没有请求连接。
TCP四次挥手
- 客户端发送连接释放的报文,并停止发送数据。释放数据报文首部,FIN=1,序列号seq=u(前面传送过来的数据最后一个字节序号加1),此时客户端进入FIN-WAIT-1(终止等待1)
- ACK=1,ack=u+1,带上序列号seq=v,服务端进入了CLOSE-WAIT关闭等待状态
- 客户端收到服务器端确认请求后,客户端就会进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文,服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,服务器进入LAST-ACK(最后确认)状态,等待客户端确认
- 客户端收到服务器连接释放报文后,须发出确认,ACK=1,ack=w+1,自己的序列号为seq=u+1。这时客户端会进入TIME-WAIT(时间等待)状态,此时TCP连接还未终止,须经过2MSL(最长报文寿命),客户端撤销相应TCB后,客户端才会进入CLOSED关闭状态,服务器端收到确认报文后会立即进入CLOSED关闭状态。
等待2MSL原因
如果前一次的连接某些数据滞留在网络中,这些延迟数据在建立新连接后到达Client端,由于新老连接的端口号和IP都一样,TCP协议就认为延迟数据是属于新连接的,新连接就会接收到脏数据,这样就会导致数据包混乱。所以TCP连接需要在TIME_WAIT状态等待2倍MSL,才能保证本次连接的所有数据在网络中消失。
RPC与HTTP的区别
RPC
- 是一种概念、设计,为了解决不同服务之间的调用问题,它一般会包含有传输协议和序列化协议这两个
- 允许程序在不同地址空间内执行过程调用
- 和HTTP协议一样是基于请求/响应模式,强调过程调用的语义
- 适用于高效且频繁的服务调用场景,如为服务器间通信
- 通常是无状态的,某些实现可以支持状态保持
HTTP
- 是一种协议,RPC框架可以使用HTTP协议作为传输协议或者直接使用TCP作为传输协议,使用不同的协议一般是为了适应不同场景
Cookie 和 Session
Cookie: 类型为小型文本文件,存储在用户本地终端上的数据,由用户客户端计算机暂时或永久保存
Session:在计算机中,尤其是在网络应用中,称为“会话控制
”。Session 对象存储特定用户会话所需的属性及配置信息。
- 会话:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话
区别:Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上
。
Cookie
作用:解决HTTP协议无状态的问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判断当前用户是哪个
生成:一种是浏览器会将Cookie保存在内存中,还有一种是保存在客户端的硬盘中
,之后每次HTTP请求浏览器都会将Cookie发送给服务器端
生存周期:Cookie在生成时就会被指定一个Expire值,这就是Cookie的生存周期,在这个周期内Cookie有效,超出周期Cookie就会被清除。有些页面将Cookie的生存周期设置为“0”或负值,这样在关闭浏览器时,就马上清除Cookie,不会记录用户信息,更加安全。
缺陷:
- 数量受限:一个浏览器能创建的 Cookie 数量最多为 300 个,并且每个不能超过 4KB,每个 Web 站点能设置的,Cookie 总数不能超过 20 个
- 安全性不足:跨站点脚本攻击往往利用网站漏洞在网站页面中植入脚本代码或网站页面引用第三方法脚本代码
- 浏览器可禁用
应用场景:安全性要求不高;不需要大量存储;应用场景为客户端与服务器之间的状态保持
Session
生成:用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。
服务器同时也把sessionID和对应的用户信息、用户操作记录在服务器上,这些记录就是session。再次访问时会带入会发送cookie给服务器,其中就包含sessionID。
生命周期:根据需求设定
,一般来说,半小时。举个例子,你登录一个服务器,服务器返回给你一个sessionID,登录成功之后的半小时之内没有对该服务器进行任何HTTP请求,半小时后你进行一次HTTP请求,会提示你重新登录。
HTTP 访问一个下载地址时怎么知道是要下载文件
Content-Disposition
浏览器检查响应头中的该字段,如果设置为Attachment则提示用户下载而不是直接展示
Content-Type
表达资源MIMIE类型,如text/html
被解析为HTML,application/pdf
为展示PDF文件,application/octet-stream
会提示用户下载文件
设置文件拓展名
浏览器会根据文件后缀提示下载
禁用浏览器Cookie,如何记录HTTP信息
-
URL重写
- 简单但影响美观,GET /example?status=success
-
使用Local Storage 或 Session Storage
- 使用JavaScript,可以将状态信息存储在这些存储区
-
使用HTTP请求头
-
自定义HTTP请求头以传递状态信息
-
GET /example X-Status: success
-
-
服务器端会话管理
- 可以利用服务器端的会话来存储状态信息。用户的状态信息可以在服务器上维护,而不是依赖于浏览器 Cookie
-
利用表单
- 如果需要在表单提交时传递状态信息,可以将其作为隐藏字段包含在表单中
参考:
- 一文彻底搞懂OSI七层模型和TCP/IP四层模型_osi网络协议-CSDN博客
- SSL与TLS到底有何区别,一见分晓_tls和ssl区别-CSDN博客
- 常见的网络协议HTTP、TCP/IP、UDP等【知识点整理】_网络协议有哪些-CSDN博客
- 简单理解TCP三次握手四次挥手(看一遍你就懂)-CSDN博客
- 常见的网络协议HTTP、TCP/IP、UDP等【知识点整理】_网络协议有哪些-CSDN博客
- HTTP报文格式详解-CSDN博客
- 客户端浏览器一次http完整请求过程流程图(图文结合诠释请求过程)_客户端到服务器的请求流程图-CSDN博客
- 【面试】什么是断点续传技术?如何实现大文件的断点续传?-CSDN博客
- HTTP协议为什么是无状态的?无状态指的是什么-CSDN博客
- [浏览器禁用cookie后,如何使用session 或者 保持登录状态?_cookie禁用后如何使用session-CSDN博客](https://blog.csdn.net/Future1994/article/details/111131262#:~:text=如果浏览器不支持Cookie或用户阻止了所有Cookie, 服务器端 可以把会话ID附加在 HTML页面,中所有的URL上,这些页面作为响应发送给客户。 这样,当用户单击URL时,会话ID被自动作为请求行的一部分而不是作为头行发送回服务器。 这种方法称为URL重写 (URL rewriting)。)
- HTTPS请求的整个过程的详细分析-CSDN博客
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异