![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
http
siwluxuefeng
后知后觉
展开
-
http笔记整理:数字签名与证书
实现完整性的手段主要是摘要算法(Digest Algorithm),也就是常说的散列函数、哈希函数(Hash Function)。摘要算法理解成特殊的“单向”加密算法,它只有算法,没有密钥,加密后的数据无法解密,不能从摘要逆推出原文。摘要算法实际上是把数据从一个“大空间”映射到了“小空间”,所以就存在“冲突”(collision,也叫碰撞)的可能性,就如同现实中的指纹一样,可能会有两份不同的原文对应相同的摘要。MD5(Message-Digest 5)、SHA-1(Secure Hash A原创 2020-05-12 23:01:23 · 243 阅读 · 0 评论 -
http笔记整理:https
安全:如果通信过程具备了四个特性,就可以认为是“安全”的,这四个特性是:机密性、完整性,身份认证和不可否认。SSL 即安全套接层(Secure Sockets Layer),目前应用的最广泛的 TLS 是 1.2。TLS 由记录协议、握手协议、警告协议、变更密码规范协议、扩展协议等几个子协议组成,综合使用了对称加密、非对称加密、身份认证等许多密码学前沿技术实验环境使用的 TLS 是 1.2,客户端和服务器都支持非常多的密码套件,而最后协商选定的是“ECDHE-RSA-AES25.原创 2020-05-11 23:49:12 · 238 阅读 · 0 评论 -
http笔记整理:缓存代理
HTTP 的服务器缓存功能主要由代理服务器来实现(即缓存代理),源服务器系统内部虽然也经常有各种缓存(如 Memcache、Redis、Varnish 等),但与 HTTP 没有太多关系。在没有缓存的时候,代理服务器每次都是直接转发客户端和服务器的报文,中间不会存储任何数据,只有最简单的中转功能。代理服务收到源服务器发来的响应数据后需要做两件事。第一个当然是把报文转发给客户端,而第二个就是把报文存入自己的 Cache 里。下一次再有相同的请求,代理服务器就可以直接发送 304 或者缓存数据,不必原创 2020-05-11 23:46:26 · 173 阅读 · 0 评论 -
http笔记整理:代理服务
链条的起点还是客户端(也就是浏览器),中间的角色被称为代理服务器(proxy server),链条的终点被称为源服务器(origin server)“代理服务”就是指服务本身不生产内容,而是处于中间位置转发上下游的请求和响应,具有双重身份:面向下游的用户时,表现为服务器,代表源服务器响应客户端的请求;而面向上游的源服务器时,又表现为客户端,代表客户端发送请求。“计算机科学领域里的任何问题,都可以通过引入一个中间层来解决。如果一个中间层解决不了问题,那就再加一个中间层。”代理最基本的.原创 2020-05-11 23:42:56 · 1133 阅读 · 0 评论 -
http笔记整理:缓存控制
1.服务器缓存1.浏览器发现缓存无数据,于是发送请求,向服务器获取资源;2.服务器响应请求,返回资源,同时标记资源的有效期;3.浏览器缓存资源,等待下次重用。服务器标记资源有效期使用的头字段是“Cache-Control”,里面的值“max-age=30”就是资源的有效时间,相当于告诉浏览器,“这个页面只能缓存 30 秒,之后就算是过期,不能用。”这里的 max-age 是“生存时间”(又叫“新鲜度”“缓存寿命”,类似 TTL,Time-To-Live),时间的计算起点是响应报.原创 2020-05-11 23:34:56 · 187 阅读 · 0 评论 -
http笔记整理:cookie机制
HTTP 的 Cookie 机制,既然服务器记不住,那就在外部想办法记住。相当于是服务器给每个客户端都贴上一张小纸条,上面写了一些只有服务器才能理解的数据,需要的时候客户端把这些信息发给服务器,服务器看到 Cookie,就能够认出对方是谁了。响应头字段 Set-Cookie 和请求头字段 Cookie。当用户通过浏览器第一次访问服务器的时候,服务器肯定是不知道他的身份的。所以,就要创...原创 2020-04-28 00:00:01 · 170 阅读 · 0 评论 -
http笔记整理:重定向和跳转
1.重定向是服务器发起的跳转,要求客户端改用新的 URI 重新发送请求,通常会自动进行,用户是无感知的;2.301/302 是最常用的重定向状态码,分别是“永久重定向”和“临时重定向”;3.响应头字段 Location 指示了要跳转的 URI,可以用绝对或相对的形式;5.重定向可以把一个 URI 指向另一个 URI,也可以把多个 URI 指向同一个 URI,用途很多;6.使用重定向...原创 2020-04-27 23:54:38 · 227 阅读 · 0 评论 -
http笔记整理:连接管理
短连接的缺点相当严重,因为在 TCP 协议里,建立连接和关闭连接都是非常“昂贵”的操作。TCP 建立连接要有“三次握手”,发送 3 个数据包,需要 1 个 RTT;关闭连接是“四次挥手”,4 个数据包需要 2 个 RTT。而 HTTP 的一次简单“请求 - 响应”通常只需要 4 个包,如果不算服务器内部的处理时间,最多是 2 个 RTT。这么算下来,浪费的时间就是“3÷5=60%”,有三分之二的时...原创 2020-04-27 23:52:58 · 233 阅读 · 0 评论 -
http笔记整理:传输大文件
数据压缩gzip 等压缩算法通常只对文本文件有较好的压缩率,而图片、音频视频等多媒体数据本身就已经是高度压缩的,再用 gzip 处理也不会变小(甚至还有可能会增大一点),所以它就失效了分块传输“化整为零”的思路在 HTTP 协议里就是“chunked”分块传输编码,在响应报文里用头字段“Transfer-Encoding: chunked”来表示,意思是报文里的 body 部分不是一次...原创 2020-04-22 00:08:27 · 250 阅读 · 0 评论 -
http笔记整理:http实体数据
数据类型与编码HTTP 协议它是应用层的协议,数据到达之后工作只能说是完成了一半,还必须要告诉上层应用这是什么数据才行在 HTTP 里经常遇到的几个类别:1.text:即文本格式的可读数据,我们最熟悉的应该就是 text/html 了,表示超文本文档,此外还有纯文本 text/plain、样式表 text/css 等。2.image:即图像文件,有 image/gif、image/...原创 2020-04-22 00:04:00 · 148 阅读 · 0 评论 -
http笔记整理:http优点与缺点
1.HTTP 最重要也是最突出的优点是“简单、灵活、易于扩展”header + body 结构HTTP 协议里的请求方法、URI、状态码、原因短语、头字段等每一个核心组成要素都没有被“写死”,允许开发者任意定制、扩充或解释,给予了浏览器和服务器最大程度的信任和自由,也正好符合了互联网“自由与平等”的精神——缺什么功能自己加个字段或者错误码什么的补上就是了2.“无状态”,它对于 HTTP...原创 2020-04-21 23:59:50 · 361 阅读 · 0 评论 -
http笔记整理:http特点
1.HTTP 是灵活可扩展的,可以任意添加头字段实现任意功能;2,.HTTP 是可靠传输协议,基于 TCP/IP 协议“尽量”保证数据的送达;3.HTTP 是应用层协议,比 FTP、SSH 等更通用功能更多,能够传输任意数据;4.HTTP 使用了请求 - 应答模式,客户端主动发起请求,服务器被动回复请求;5.HTTP 本质上是无状态的,每个请求都是互相独立、毫无关联的,协议不要求客...原创 2020-04-21 23:57:42 · 222 阅读 · 0 评论 -
http笔记整理:状态码
状态码目前 RFC 标准里规定的状态码是三位数,所以取值范围就是从 000 到 999。但如果把代码简单地从 000 开始顺序编下去就显得有点太“low”,不灵活、不利于扩展,所以状态码也被设计成有一定的格式。RFC 标准把状态码分成了五类,用数字的第一位表示分类,而 0~99 不用,这样状态码的实际可用范围就大大缩小了,由 000~999 变成了 100~599。1××:...原创 2020-04-21 23:53:51 · 354 阅读 · 0 评论 -
http笔记整理:正确的网址
1.URI 是用来唯一标记服务器上资源的一个字符串,通常也称为 URL;URI,也就是统一资源标识符(Uniform Resource Identifier)URL——统一资源定位符(Uniform Resource Locator)2.URI 通常由 scheme、host:port、path 和 query 四个部分组成,有的可以省略;3.scheme 叫“方案名”或...原创 2020-04-21 23:51:27 · 3839 阅读 · 0 评论 -
http笔记整理-请求方法
目前 HTTP/1.1 规定了八种方法,单词都必须是大写的形式,我先简单地列把它们列出来,后面再详细讲解。GET:获取资源,可以理解为读取或者下载数据;HEAD:获取资源的元信息;POST:向资源提交数据,相当于写入或上传数据;PUT:类似 POST;DELETE:删除资源;CONNECT:建立特殊的连接隧道;OPTIONS:列出可对资源实行的方法;TRACE:...原创 2020-04-14 23:35:22 · 108 阅读 · 0 评论 -
http笔记整理-http报文格式
HTTP 的工作模式是非常简单的,由于 TCP/IP 协议负责底层的具体传输工作,HTTP 协议基本上不用在这方面操心太多。HTTP 协议的核心部分是什么呢?答案就是它传输的报文内容。HTTP 协议在规范文档里详细定义了报文的格式,规定了组成部分,解析规则,还有处理策略,所以可以在 TCP/IP 层之上实现更灵活丰富的功能,例如连接控制,缓存管理、数据编码、内容协商等等。HTT...原创 2020-04-14 23:32:37 · 365 阅读 · 0 评论 -
http笔记整理-搭建http实验环境
1.现实的网络环境太复杂,有很多干扰因素,搭建“最小化”的环境可以快速抓住重点,掌握 HTTP 的本质;2.选择 Wireshark 作为抓包工具,捕获在 TCP/IP 协议栈中传输的所有流量;3.选择 Chrome 或 Firefox 浏览器作为 HTTP 协议中的 user agent;4.选择 OpenResty 作为 Web 服务器,它是一个 Nginx 的“强化包”,功能非常...原创 2020-04-13 23:40:01 · 138 阅读 · 0 评论 -
http笔记整理-域名
1.域名使用字符串来代替 IP 地址,方便用户记忆,本质上一个名字空间系统;2.DNS 就像是我们现实世界里的电话本、查号台,统管着互联网世界里的所有网站,是一个“超级大管家”;3.DNS 是一个树状的分布式查询系统,但为了提高查询效率,外围有多级的缓存;4.使用 DNS 可以实现基于域名的负载均衡,既可以在内网,也可以在外网。在浏览器地址栏里随便输入一个不存在的域名,比如就...原创 2020-04-13 23:35:47 · 171 阅读 · 0 评论 -
http笔记整理-分层协议
从下往上”数的,所以第一层就是最下面的一层。第一层叫“链接层”(link layer),负责在以太网、WiFi 这样的底层网络上发送原始数据包,工作在网卡这个层次,使用 MAC 地址来标记网络上的设备,所以有时候也叫 MAC 层。第二层叫“网际层”或者“网络互连层”(internet layer),IP 协议就处在这一层。因为 IP 协议定义了“IP 地址”的概念,所以就可以在“链接层”的...原创 2020-04-13 23:33:36 · 146 阅读 · 0 评论 -
Http笔记整理-http相关协议
1.TCP/IP 是网络世界最常用的协议,HTTP 通常运行在 TCP/IP 提供的可靠传输基础上;2.DNS 域名是 IP 地址的等价替代,需要用域名解析实现到 IP 地址的映射;3.URI 是用来标记互联网上资源的一个名字,由“协议名 + 主机名 + 路径”构成,俗称 URL;4.HTTPS 相当于“HTTP+SSL/TLS+TCP/IP”,为 HTTP 套了一个安全的外壳;5...原创 2020-04-13 23:28:07 · 140 阅读 · 0 评论 -
http笔记整理-http相关概念
1.互联网上绝大部分资源都使用 HTTP 协议传输;2.浏览器是 HTTP 协议里的请求方,即 User Agent;3.服务器是 HTTP 协议里的应答方,常用的有 Apache 和 Nginx;4.CDN 位于浏览器和服务器之间,主要起到缓存加速的作用;5.爬虫是另一类 User Agent,是自动访问网络资源的程序。...原创 2020-04-13 23:26:28 · 96 阅读 · 0 评论 -
Http笔记整理-http背景
今天我和你一起跨越了三十年的历史长河,回顾了 HTTP 协议的整个发展过程,在这里简单小结一下今天的内容:1.HTTP 协议始于三十年前蒂姆·伯纳斯 - 李的一篇论文;2.HTTP/0.9 是个简单的文本协议,只能获取文本资源;3.HTTP/1.0 确立了大部分现在使用的技术,但它不是正式标准;4.HTTP/1.1 是目前互联网上使用最广泛的协议,功能也非常完善;5.HTTP/...原创 2020-04-13 23:20:43 · 187 阅读 · 0 评论