HTTP和HTTPS
目录HTTP请求行方法get和post的区别URL查询语句版本号请求报头3Content-Type4User-Agent(UA)6CookieHTTP格式简略图为HTTP的响应响应行常见的状态码以及状态状态码的描述重定向HTTPS加密对称加密非对称加密对称加密和非对称加密结合引入中间人攻击引入CA证书引入HTTPS的工作流程小结HTTPSHTTPHTTP协议是基于应用层的网络传输协议中文名为超文本传输协议应用层协议解释的是应用层传输的数据要干啥。由于HTTP协议是应用层协议更依赖于下层的TCP或UDP协议。 高版本的HTTP会基于UDPHTTP的应用场景主要有web开发网页前后端的通信移动端的APP和其他服务器之间的通信……客户端与服务器之间的交互模型有很多比如多问一答多个独立请求一条响应一问多答单次请求多条响应比如下载一个大文件将这个文件分成一块一块持续发放多问多答多个请求多个响应请求和响应之间数量对等但没有必然的顺序关系一问一答一个请求一个响应一一对应是HTTP协议的基础HTTP请求的技基础格式主要是四大部分请求行请求报头空行请求正文请求行请求行有三部分组成Method,url,version每个部分之间用空格区分方法主要的方法有get 、post、 put、 delete ……get的用途是获取资源post是传输实体主体或者说请求体和响应体put也是传输文件delete是删除文件方法之间有规范但可以混用比如post可以查询更新删除get和post是最常见的方法 get请求中大多数没有正文数据一般在url中post请求中一般有正文数据一般在正文中在登录或者说上传文件比如更新头像的场景时容易出现get和post的区别语义不同get一般用于获取数据post一般是提交数据get请求一般是幂等的post不是所以get可以被缓存而post不行幂等指的是多次请求得到的响应结果一样get请求的正文一般为空数据是是在查询语句中 post的查询语句一般为空数据在正文中URL请求首行的第二部分URL中文名叫做唯一资源定位符它不是HTTP中特有的很多协议都有POSThttps://leetcode.cn/graphql/HTTP/1.1GEThttps://passport.baidu.com/passApi/js/wrapper.js?cdnversion1784190973616_1784190973332HTTP/1.1POSThttps://nav-edge.smartscreen.microsoft.com/api/browser/edge/navigate/3HTTP/1.1加粗的部分就是首行当中的Url格式一般为http://user:passwww.example.jp:80/dir/index.htm?uid1#ch1http 协议类型:// 分隔协议与地址现在的URL中一般没有用户和密码协议后面就紧跟着地址user 用户名 分隔用户名和密码pass 密码 分隔认证信息用户和密码和主机地址www.example.jp 域名 分隔域名和端口号80 端口号/ 分隔主机和带层次的资源路径index.htm 资源路径 分隔资源路径和查询语句uid1 查询语句# 分隔查询语句和锚点ch1 锚点查询语句由键值对组成以连接键值键值对可以有多个彼此之间用连接由于由于由于查询语句的键和值是自定义的但像“/”“?”“”等字符已经被URL当作特殊意义理解所以这些字符不能在查询语句中随意出现需要对这些特殊字符进行转义汉字也需要转义。将待转义的字符转成16进制每两个16进制为一组每组前加上一个%%xy例如李转义为%E6%9D%8E版本号当前协议的版本类型请求报头Host: miao.baidu.comConnection: keep-aliveContent-Length: 2139sec-ch-ua-platform: WindowsUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36 Edg/150.0.0.0sec-ch-ua: Not;ABrand;v8, Chromium;v150, Microsoft Edge;v150Content-Type: text/plain;charsetUTF-8sec-ch-ua-mobile: ?0Accept: */*Origin: https://image.baidu.comSec-Fetch-Site: same-siteSec-Fetch-Mode: corsSec-Fetch-Dest: emptyReferer: https://image.baidu.com/Accept-Encoding: gzip, deflate, br, zstdAccept-Language: zh-CN,zh;q0.9,en;q0.8,en-GB;q0.7,en-US;q0.6Cookie: BAIDUID1234567896824AC0977CC218FB359726F:FG1;……报头中有几个关键的字段字段之间换行区分1Host表示服务器主机的地址和端口可能被省略2Content-Length表示正文中的数据长度3Content-Type正文中的数据类型Content-Type: text/plain;charsetUTF-8格式为类型/子类型multipart/form-dataapplication/jsontext/htmlimage/png……4User-Agent(UA)表示浏览器操作系统的属性可以被人为地篡改服务器不能通过UA判断客户端的真实信息User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36Edg/150.0.0.0Mozilla/5.0 -- 兼容老旧网页Windows NT 10.0; Win64; x64 -- 操作系统信息AppleWebKit/537.36 (KHTML, like Gecko) -- 浏览器内核Edg/150.0.0.0 -- 本次访问的浏览器(在UA末尾出现)Chrome/150.0.0.0 Safari/537.36 -- Edge浏览器是基于Chrome的内核上开发的所以会保留Chrome的版本号Safari/537.36是一个兼容标记比如Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/150.0.0.0 Safari/537.36本次访问的浏览器是谷歌Mozilla/5.0 (Linux; Android 14) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/150.0.0.0Mobile Safari/537.36本次访问的是移动端的谷歌5Referer(referrer)当前请求是从哪个界面跳转过来的6Cookiecookie请求报头中由服务器通过set cookie响应报头中下发保存在浏览器本地后续浏览器发起请求时自动会把cookie当中的信息发送给服务器储存的数据有时效。 cookie当中储存的是键值对键和值隔开对与对之间;隔开。这像是小区的门禁卡户主第一次进入小区需要登记注册信息这份信息物业的服务器会储存一份还有一份以门禁卡的形式分发给户主下次回家时刷门禁卡就可以开门不需要到门卫那儿排查核对。户主浏览器物业网站服务器户主第一次进小区浏览器首次访问网站物业登记户主所有信息存入系统服务端生成session物业发放门禁卡服务器通过响应头set cookie下发cookie给浏览器 cookie不会储存所有信息只储存一段编号sessionId这个编号与session对应在门禁卡的有效期内出示门禁卡进出小区服务器读取cookie当中的sessionId到对应的session数据空行隔开报头和正文正文传输的数据HTTP格式简略图为HTTP的响应响应也分为四个部分响应行、响应报头、空行、响应正文HTTP/1.1 301 Moved PermanentlyServer: nginxDate: Fri, 17 Jul 2026 09:05:32 GMTContent-Type: text/htmlContent-Length: 178Connection: keep-aliveLocation: http://www.jd.com/……响应行响应行由三个部分组成版本、状态码、状态码的描述常见的状态码以及状态状态码的描述即使请求不合法但依然会有响应状态码表示的是访问一个页面的响应结果404状态码它表示访问的资源在服务器上不存在出错的地方在于客户端的请求首行当中的URL中的带层次的资源路径错误……重定向301/302 重定向访问URL1实际上访问的是URL2像是手机换了一个号码但为了交流方便办理了呼叫转移的业务当别人拨打旧号码时就会转接到我的新号码上。临时和永久的区别在于浏览器是否缓存新的地址。永久重定向当浏览器第一次访问时服务器响应301并附带location字段表示应该访问新的地址同时储存在本地浏览器当中第二次访问浏览器先查本地缓存若有就直接跳转到新的地址若没找到就判断是否是其他情况。临时重定向不会被浏览器缓存每次需要接收响应后跳转新的地址。无论是301还是302在首次访问时都需要至少两次的HTTP请求第一次请求访问旧地址第二次请求访问新地址总体顺序为用户输入URL时浏览器检索本地是否存在该URL的301跳转缓存记录如果存在直接跳转到新地址不会发送给服务器用于获取新地址。如果没有则发送请求在收到服务器的响应报文后读取状态码如果是重定向判断是永久还是临时临时的话不写入缓存永久的话把新地址存入到本地的跳转缓存中接着发起请求访问目标地址。状态码的总结1xx 信息状态码表示接收的请求正在处理2xx 成功状态码表示请求正常处理完毕3xx 重定向状态码表示需要进行附加操作以完成请求4xx 客户端错误状态码表示服务器无法处理请求5xx 服务器错误状态码表示服务器请求出错HTTPSHTTPS HTTP SSL / TLCHTTP是明文传输数据容易被劫持、窃取、篡改。HTTPS是在HTTP的基础上加了加密安全层具有加密传输、身份认证、防篡改的功能加密加密明文--密文对称加密一个密钥既能加密也能解密非对称加密两个密钥一个用于加密一个用于解密其中一个公开出去称之为公钥另一个自己保存称之为私钥解密密文--明文密钥对称密钥非对称密钥对称加密通过一个密钥把明文加密成密文并且能通过这个密钥把密文解密成明文像密码本通过密码本将情报加密信息沟通时通信双方需要同一个密钥才能进行加解密密钥的传输过程存在风险线下传输太麻烦低效网络传输更方便管理和密钥分配但如果密钥是明文传输这会导致传输的信息很容易被解密这样加密就成了无用功。单纯的对称加密的核心痛点就是密钥传输的安全问题优点在于能加密大量数据也能更容易加密数据非对称加密非对称加密其中一把密钥公布出去用于加密另一把密钥自己持有用于解密这样沟通对方按照公钥进行加密别人无法知道其真正意思但自己可以通过私钥解密得知正文这样就形成了加密传输。但是单纯的非对称加密缺点在于加密速度慢对加密的明文长度有限制对称加密和非对称加密结合利用非对称加密当中的公钥对对称加密当中的对称密钥进行加密私钥持有方才能知道对称加密的密钥。这样沟通双方就可以使用对称加密进行加密交流。但是这样还是有一个缺点收到公钥的一方是否能够确定这个公钥来自于我想要进行加密沟通的对象。引入中间人攻击中间人劫持客户端的数据报文 并自己向服务器发送请求得到公钥a中间人在把自己的公钥b传给客户端让客户端误以为自己是服务器客户端再用公钥b加密对称密钥c再被中间人劫持使用私钥B解密得知对称密钥c再以公钥a传递给服务器让服务器能够通过私钥A解密让其误认为自己是客户端。这样对于客户端来说中间人是服务器对于服务器来说中间人是客户端要解决的新问题是怎样辨别公钥是我需要加密通讯的对象引入CA证书证书类似于网站的官方身份证证书包含域名网站的公钥CA机构的签名和有效期等等是一种身份证明证明证书当中的公钥是你加密通信对象的公钥。证书内存放网站的公钥 CA证书本身也有一套独立公钥和私钥与网站的公钥和私钥不同CA证书的公钥内置于操作系统当中CA证书CA私钥用于加密哈希摘要形成数字签名 CA公钥用于解密校验证书签名。 CA的公钥被作操作系统内置并非网络传输且CA公钥用于解密这样客户端就可以得知CA证书当中的签名,而CA私钥用于加密被严格保存。由于签名是由正文进行哈希摘要在进行CA私钥加密得来用证书当中的签名解密后和本身的哈希摘要进行比较如果相同这证明证书是对的引入HTTPS的工作流程1,客户端与服务器完成TCP连接发起TLS握手服务器发放证书2客户端使用系统内置的CA公钥校验证书签名确认证书的有效3校验完成后客户端随机生成对称密钥4客户端使用证书内的网站公钥加密对称密钥发送给服务器5服务器使用本地的网站私钥解密得到同一个对称密钥6双方后续所有的HTTP通信均使用该对称密钥加密传输小结HTTPShttps用到两类加密对称加密和非对称加密非对称的有网站密钥对和CA的密钥对网站的密钥对私钥解密服务器保存公钥加密存放于数字证书中CA证书密钥对私钥加密做数字签名公钥解密操作系统内置并非网络传输获得校验证书

相关新闻

数字化:钱不可能让你赚完 敢放弃才能赢

数字化:钱不可能让你赚完 敢放弃才能赢

上周跟一个做了七八年数字化的老哥吃饭,他说了一句话把我逗乐了:"你们公司现在做数据呈现挺稳的,为什么不往上走走?数据采集、数据中台那块的利润多厚啊。"我笑了,反问他:"你觉得我现在缺的…

2026/7/19 18:07:00 阅读更多 →
Cursor连接数据库突然失败?揭秘Connection Timeout背后的4层协议栈真相(含Wireshark抓包验证)

Cursor连接数据库突然失败?揭秘Connection Timeout背后的4层协议栈真相(含Wireshark抓包验证)

更多请点击: https://intelliparadigm.com 第一章:Cursor连接数据库突然失败?揭秘Connection Timeout背后的4层协议栈真相(含Wireshark抓包验证) 当Cursor IDE在执行SQL查询时突然抛出 connection timeout after 300…

2026/7/19 18:06:00 阅读更多 →
IX9104@ACP# 完整替代的 PEX89104 应用场景

IX9104@ACP# 完整替代的 PEX89104 应用场景

一、IX9104 在当前国产 AI 服务器时代的独有特殊价值结合此芯 P1、爱芯 NPU、昇腾、昆仑等国产算力生态,区别于博通 PEX89104 的差异化核心价值:1. 信创合规 硬件国密,AI 政企算力项目准入刚需1)内置硬件 SM2/SM3/SM4 国密加密引…

2026/7/19 18:06:00 阅读更多 →

最新新闻

互联网大厂常见Java面试题及答案汇总(2026持续更新)

互联网大厂常见Java面试题及答案汇总(2026持续更新)

金九银十即将来袭,又是一个跳槽的好季节,准备跳槽的同学都摩拳擦掌准备大面好几场,今天为大家准备了互联网面试必备的 1 到 5 年 Java 面试者都需要掌握的面试题,分别 JVM,并发编程,MySQL,Tomca…

2026/7/20 0:15:40 阅读更多 →
ngx_output_chain_get_buf

ngx_output_chain_get_buf

1 定义 ngx_output_chain_get_buf 函数 定义在 src/core/ngx_output_chain.cstatic ngx_int_t ngx_output_chain_get_buf(ngx_output_chain_ctx_t *ctx, off_t bsize) {size_t size;ngx_buf_t *b, *in;ngx_uint_t recycled;in ctx->in->buf;size ctx->buf…

2026/7/20 0:13:39 阅读更多 →
python数据可视化技巧的100个练习 -- 31. 类别数据的点图

python数据可视化技巧的100个练习 -- 31. 类别数据的点图

重要性★★★☆☆ 难度★★☆☆☆ 你是一家零售公司的数据分析师。你的经理要求你可视化最近产品发布的客户满意度评级分布。评级是分类的,范围从“非常不满意”到“非常满意”。创建一个点图以显示每个评级类别的频率。使用 Python 进行数据处理和可视化。在代码中生成输入…

2026/7/20 0:12:39 阅读更多 →
智能体走进物理世界,千里科技携舱驾协同成果亮相WAIC 2026

智能体走进物理世界,千里科技携舱驾协同成果亮相WAIC 2026

在2026世界人工智能大会(WAIC 2026)举办期间,千里科技董事长、阶跃星辰董事长印奇作为特邀嘉宾出席大会开幕式并在大会主论坛(上午场)发表主题演讲《当智能体进入物理世界》。在印奇看来,"智能体"…

2026/7/20 0:12:39 阅读更多 →
商汤大装置发布“技术-生态-商业”闭环布局,共启“国产AI基础设施规模化商用元年”

商汤大装置发布“技术-生态-商业”闭环布局,共启“国产AI基础设施规模化商用元年”

7月18日,在WAIC 2026商汤科技 “基座大模型架构创新与生态合作论坛”上,商汤科技联合创始人、大装置事业群总裁杨帆发表《智变共生——加速AI基础设施持续升级》主题演讲,系统呈现了商汤大装置国产AI基础设施“技术-生态-商业”闭环布局&…

2026/7/20 0:12:39 阅读更多 →
2026年具身智能领域代表性机器人产品观察:普渡一脑多形底座与实景落地解析

2026年具身智能领域代表性机器人产品观察:普渡一脑多形底座与实景落地解析

前言2026年被行业视为具身智能从"实验室炫技"走向"规模化量产"的关键拐点。据弗若斯特沙利文《全球商用服务机器人市场研究报告》,普渡科技以23%市占率位居全球商用服务机器人第一,业务覆盖85+个国家和地区,累…

2026/7/20 0:11:39 阅读更多 →

日新闻

2026 WAIC:努比亚二代“豆包手机”NaviX Ultra亮相,智能体验全面升级!

2026 WAIC:努比亚二代“豆包手机”NaviX Ultra亮相,智能体验全面升级!

7月18日智东西消息,在2026 WAIC期间,努比亚联合字节豆包打造的二代“豆包手机”努比亚NaviX Ultra首次亮相,相比一代有诸多升级。智能体手机理念中兴通讯终端事业部总裁、努比亚总裁倪飞表示,智能体手机要从人操作手机变为手机帮人…

2026/7/20 0:00:34 阅读更多 →
努比亚NaviX Ultra亮相WAIC,智能体手机能否让用户生活更简单?

努比亚NaviX Ultra亮相WAIC,智能体手机能否让用户生活更简单?

努比亚NaviX Ultra:外观与功能双升级在2026 WAIC期间,首次亮相的努比亚NaviX Ultra吸引了众多目光。它是努比亚联合字节豆包打造的二代“豆包手机”,与一代努比亚M153相比,外观设计变化较大。其机身背部搭载横向排布的大尺寸影像模…

2026/7/20 0:00:34 阅读更多 →
C# 将逗号分割的字符串转换为long,并添加到List<long>

C# 将逗号分割的字符串转换为long,并添加到List<long>

目录 方法1:使用Split和Convert.ToInt64 方法2:使用LINQ的Select和ToList 方法3:使用TryParse进行异常安全转换(推荐) 如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天…

2026/7/20 0:00:34 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:00:40 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:00:40 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:00:40 阅读更多 →

月新闻