http读书笔记
文章平均质量分 68
发如雪-ty
一个工作7年的程序员,一直从事C++开发方面的工作,曾有幸在安防行业深耕4年,并有幸在工业检测行业工作至今已有3年,主要负责系统软件的设计与开发,个人编程的信仰:不要盲目学习酷炫的东西,最重要的依然是内功。
展开
-
http-16-对称加密与非对称加密
按照密钥的使用方式,加密可以分为两大类:对称加密和非对称加密。对称加密“对称加密”很好理解,就是指加密和解密时使用的密钥都是同一个,是“对称”的。只要保证了密钥的安全,那整个通信过程就可以说具有了机密性。对称加密所使用的算法包括:DES、3DES、AES、DESX、Blowfish、RC4、RC5、RC6,这些算法就可以看成密钥、或者理解为上面的密码本。这些算法也可以称为: “对称加密算法"或者"传统加密算法”,一方使用算法进行加密,然后另一方使用相同的算法进行解密。非对称加密如今的网络通信中,显原创 2021-10-24 23:22:35 · 435 阅读 · 0 评论 -
http-15-https是什么
为什么要有 HTTPS?简单的回答是“因为 HTTP 不安全”。由于 HTTP 天生“明文”的特点,整个传输过程完全透明,任何人都能够在链路中截获、修改或者伪造请求 / 响应报文,数据不具有可信性。什么是 HTTPS?HTTPS 其实是一个“非常简单”的协议,RFC 文档很小,只有短短的 7 页,里面规定了新的协议名“https”,默认端口号 443,至于其他的什么请求 - 应答模式、报文结构、请求方法、URI、头字段、连接管理等等都完全沿用 HTTP,没有任何新的东西。HTTPS 与 HTTP 最原创 2021-10-23 14:58:22 · 719 阅读 · 0 评论 -
http-14-http的代理服务
HTTP 协议严格遵循了 HTTP 的“请求 - 应答”模型。本节主要讨论代理。代理服务的在http通信中所处的的位置如下:什么是代理服务所谓的“代理服务”就是指服务本身不生产内容,而是处于中间位置转发上下游的请求和响应,具有双重身份:面向下游的用户时,表现为服务器,代表源服务器响应客户端的请求;而面向上游的源服务器时,又表现为客户端,代表客户端发送请求。HTTP 代理就是客户端和服务器通信链路中的一个中间环节,为两端提供“代理服务”;代理的作用你也许听过这样一句至理名言:“计算机科学领域里的任原创 2021-10-23 13:46:34 · 397 阅读 · 0 评论 -
http-13-http的缓存控制
缓存(Cache)是计算机领域里的一个重要概念,是优化系统性能的利器。服务器的缓存控制1.浏览器发现缓存无数据,于是发送请求,向服务器获取资源;2.服务器响应请求,返回资源,同时标记资源的有效期;3.浏览器缓存资源,等待下次重用。服务器标记资源有效期使用的头字段是“Cache-Control”,里面的值“max-age=30”就是资源的有效时间,相当于告诉浏览器,“这个页面只能缓存 30 秒,之后就算是过期,不能用。”时间的计算起点是响应报文的创建时刻(即 Date 字段,也就是离开服务器的原创 2021-10-21 23:39:26 · 924 阅读 · 0 评论 -
http-12-cookie
cookie就是能够存储格式是“key=value”数据的缓存区。这要用到两个字段:响应头字段 Set-Cookie 和请求头字段 Cookie。当用户通过浏览器第一次访问服务器的时候,服务器肯定是不知道他的身份的。所以,就要创建一个独特的身份标识数据,格式是“key=value”,然后放进 Set-Cookie 字段里,随着响应报文一同发给浏览器。浏览器收到响应报文,看到里面有 Set-Cookie,知道这是服务器给的身份标识,于是就保存起来,下次再请求的时候就自动把这个值放进 Cookie 字段里发原创 2021-10-20 23:24:36 · 217 阅读 · 0 评论 -
http-11-http的重定向和跳转
主动跳转:跳转动作是由浏览器的使用者主动发起的;被动跳转:跳转动作是由服务器发起的,浏览器使用者无法控制。1、重定向状态码其实之前我们就已经见过重定向了,301 是“永久重定向”,302 是“临时重定向”,浏览器收到这两个状态码就会跳转到新的 URI这里出现了一个新的头字段“Location: /index.html”,它就是 301/302 重定向跳转的秘密所在。“Location”字段属于响应字段,必须出现在响应报文里。但只有配合 301/302 状态码才有意义,它标记了服务器要求重定向的 U原创 2021-10-20 22:34:17 · 1220 阅读 · 0 评论 -
http-09-http传输大文件的方法
一、数据压缩通常浏览器在发送请求时都会带着“Accept-Encoding”头字段,里面是浏览器支持的压缩格式列表,例如 gzip、deflate、br 等,这样服务器就可以从中选择一种压缩算法,放进“Content-Encoding”响应头里,再把原数据压缩后发给浏览器。二、分块传输压缩是把大文件整体变小,我们可以反过来思考,如果大文件整体不能变小,那就把它“拆开”,分解成多个小块,把这些小块分批发给浏览器,浏览器收到后再组装复原。“Transfer-Encoding: chunked”和“Con原创 2021-10-20 14:01:35 · 942 阅读 · 0 评论 -
http-10-http的连接管理
短连接HTTP 协议最初(0.9/1.0)是个非常简单的协议,通信过程也采用了简单的“请求 - 应答”方式。它底层的数据传输基于 TCP/IP,每次发送请求前需要先与服务器建立连接,收到响应报文后会立即关闭连接。因为客户端与服务器的整个连接过程很短暂,不会与服务器保持长时间的连接状态,所以就被称为“短连接”(short-lived connections)。早期的 HTTP 协议也被称为是“无连接”的协议。短连接的缺点相当严重,因为在 TCP 协议里,建立连接和关闭连接都是非常“昂贵”的操作。TCP 建原创 2021-10-20 15:10:16 · 238 阅读 · 0 评论 -
http-08-http的实体数据
数据类型与编码在 TCP/IP 协议栈里,传输数据基本上都是“header+body”的格式。但 TCP、UDP 因为是传输层的协议,它们不会关心 body 数据是什么,只要把数据发送到对方就算是完成了任务。假如 HTTP 没有告知数据类型的功能,服务器把“一大坨”数据发给了浏览器,浏览器看到的是一个“黑盒子”,这时候该怎么办呢?幸运的是,早在 HTTP 协议诞生之前就已经有了针对这种问题的解决方案,不过它是用在电子邮件系统里的,让电子邮件可以发送 ASCII 码以外的任意数据,方案的名字叫做“多用途原创 2021-10-19 22:41:50 · 139 阅读 · 0 评论 -
http-07-状态码
状态行如下状态码1××:提示信息,表示目前是协议处理的中间状态,还需要后续的操作;2××:成功,报文已经收到并被正确处理;3××:重定向,资源位置发生变动,需要客户端重新发送请求;4××:客户端错误,请求报文有误,服务器无法处理;5××:服务器错误,服务器在处理请求时内部发生了错误。“200 OK”是最常见的成功状态码,表示一切正常,服务器如客户端所期望的那样返回了处理结果,如果是非 HEAD 请求,通常在响应头后都会有 body 数据。“204 No Content”是另一个很常见的成功状原创 2021-10-19 22:00:41 · 92 阅读 · 0 评论 -
htttp-06-网址解析
URIURI 本质上是一个字符串,这个字符串的作用是唯一地标记资源的位置或者名字。URI 的基本组成URI 第一个组成部分叫 scheme,翻译成中文叫“方案名”或者“协议名”,表示资源应该使用哪种协议来访问。在 scheme 之后,必须是三个特定的字符“????/”,它把 scheme 和后面的部分分离开。在“????/”之后,是被称为“authority”的部分,表示资源所在的主机名,通常的形式是“host:port”,即主机名加端口号。主机名可以是 IP 地址或者域名的形式,必须要有,否则原创 2021-10-19 21:45:29 · 433 阅读 · 0 评论 -
http-05-如何理解请求方法
请求方法”。它的实际含义就是客户端发出了一个“动作指令”,要求服务器端对 URI 定位的资源执行这个动作。目前 HTTP/1.1 规定了八种方法,单词都必须是大写的形式这些动作操作的目标不是本地资源,而是远程服务器上的资源,所以只能由客户端“请求”或者“指示”服务器来完成。GETGET 方法应该是 HTTP 协议里最知名的请求方法了,也应该是用的最多的,自 0.9 版出现并一直被保留至今,是名副其实的“元老”。它的含义是请求从服务器获取资源,这个资源既可以是静态的文本、页面、图片、视频,也可以是由原创 2021-10-18 22:55:23 · 277 阅读 · 0 评论 -
http-04-http报文是什么样子
HTTP 协议也是与 TCP/UDP 类似,同样也需要在实际传输的数据前附加一些头数据,不过与 TCP/UDP 不同的是,它是一个“纯文本”的协议,所以头数据都是 ASCII 码的文本,可以很容易地用肉眼阅读,不用借助程序解析也能够看懂。HTTP 协议的请求报文和响应报文的结构基本相同,由三大部分组成:1.起始行(start line):描述请求或响应的基本信息;2.头部字段集合(header):使用 key-value 形式更详细地说明报文;3.消息正文(entity):实际传输的数据,它不一定是原创 2021-10-18 22:24:54 · 292 阅读 · 0 评论 -
http-03-互联网相关概念
互联网的正式名称是 Internet,里面存储着无穷无尽的信息资源,我们通常所说的“上网”实际上访问的只是互联网的一个子集“万维网”(World Wide Web),它基于 HTTP 协议,传输 HTML 等超文本资源,能力也就被限制在 HTTP 协议之内。不过由于 HTTP 协议非常灵活、易于扩展,而且“超文本”的表述能力很强,所以很多其他原本不属于 HTTP 的资源也可以“包装”成 HTTP 来访问,这就是我们为什么能够总看到各种“网页应用”——例如“微信网页版”“邮箱网页版”——的原因。浏览器原创 2021-10-18 15:59:08 · 109 阅读 · 0 评论 -
http-02-http是什么
HTTP 是什么咱们中国有个成语“人如其名”,意思是一个人的性格和特点是与他的名字相符的。先看一下 HTTP 的名字:“超文本传输协议”,它可以拆成三个部分,分别是:“超文本”“传输”和“协议”。我们从后往前来逐个解析,理解了这三个词,我们也就明白了什么是 HTTP。HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范HTTP 不是互联网。互联网(Internet)是遍布于全球的许多网络互相连接而形成的一个巨大的国际网络,在它上面存放着各式各样的资源,也对应着原创 2021-10-15 17:16:03 · 116 阅读 · 0 评论 -
http-01-历史
HTTP/0.920 世纪 90 年代初期网络上绝大多数的资源都是纯文本,很多通信协议也都使用纯文本,所以 HTTP 的设计也不可避免地受到了时代的限制。这一时期的 HTTP 被定义为 0.9 版,结构比较简单,为了便于服务器和客户端处理,它也采用了纯文本格式。蒂姆·伯纳斯 - 李最初设想的系统里的文档都是只读的,所以只允许用“GET”动作从服务器上获取 HTML 文档,并且在响应请求之后立即关闭连接,功能非常有限。HTTP/0.9 虽然很简单,但它作为一个“原型”,充分验证了 Web 服务的可行性,而“原创 2021-10-15 16:02:00 · 104 阅读 · 0 评论