HTTP
文章平均质量分 65
分享HTTP/1.1,HTTPS,HTTP/2,HTTP/3学习经验
乘风破浪2021
在学习中成长
展开
-
HTTP Range,If-Range,If-Match比较和实践
Range,If-Range,If-Match是HTTP中的几个头字段,其中Range和If-Range配合可以实现断点续传,If-Match也可以和Range配合,但底层逻辑确是不同。Range: 按指定范围获取资源,范围越界报416。If-Range: 断点续传恢复时,用If-Range携带上次获得的资源的etag或Last-Modified检查资源是否已发生变化,是则需要重新下载整个资源,否则取本次Range指定范围的资源。无论是否匹配都只会返回200。If-Match: 如果资源未变动,则上传原创 2022-04-06 11:09:31 · 1329 阅读 · 0 评论 -
一文读懂HTTP Caching
深入浅出,一文说清楚HTTP缓存所有主要技术栈。原创 2022-03-23 15:56:22 · 5202 阅读 · 0 评论 -
一文读懂nginx gzip_static
Nginx支持静态和动态两种gzip包体压缩方式,分别对应模块ngx_http_gzip_static,ngx_http_gzip。我们知道gzip是CPU密集型应用,实时动态压缩比较消耗CPU资源。为进一步提高Nginx的性能,我们可以使用静态gzip压缩,提前将需要压缩的文件压缩好,当客服请求到达时,直接发送压缩好的.gz文件,如此就节省了CPU资源,提高了性能。缺省ngx_http_gzip_static模块并未启用,需要重新编译,并使能它#注:根据需要添加其它参数./configure --w原创 2022-02-23 12:16:40 · 4455 阅读 · 2 评论 -
一文读懂nginx charset
作为HTTP内容协商的一部分,charset通常和Accept/Content-Type,Accept-Charset头字段配合使用。nginx中可以对charset的值进行控制,直接看配置和说明#本配置文件测试charset,对应模块为ngx_http_charset_module #source_charset 指定响应使用的字符集,定义响应本身的字符集,原创 2022-02-08 10:57:50 · 4453 阅读 · 0 评论 -
一文读懂4个HTTP条件请求头部
HTTP常用的条件请求头部有4个,它们是If-Modified-Since,If-Unmodified-Since,If-Match,If-None-Match。深刻理解其适用的场景和解决的问题,是灵活应用它们的关键。If-Modified-Since: 使用最简单1. 只能用于GET/HEAD方法2. 只有一个应用场景,更新cache3. 如果同时存在If-None-Match,则If-None-Match生效如果在设定时间之后,资源发生了修改,则返回完整资源和200,否则返回304【更新cac原创 2022-01-12 15:23:46 · 1722 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---29 | 我应该迁移到HTTPS吗?
##29 | 我应该迁移到HTTPS吗?升级到HTTPS的流程申请证书 收费 免费 Let's encrypt 自动化部署协议ACME 客户端工具Certbot,acme.sh 注意事项: 双证书 RSA 2048, SHA2 ECDSA 自动部署 crontab配置HTTPS基本配置 开HTTPS服务 配置双证书 SNI【Server Name Indication】 用来解决HTTPS虚拟主机问题,即1个IP对应多个域名,HTTP时期用原创 2021-04-24 16:00:37 · 175 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---28 | 连接太慢该怎么办:HTTPS的优化
28 | 连接太慢该怎么办:HTTPS的优化HTTPS太慢主要指的是连接慢,而不是使用慢。所以优化的重点集中在连接上。TLS连接除了交互消息,还有一些隐性的时间消耗,比如客户端需要验证证书。TLS握手过程中,客户端验证证书真伪,有一种情况,证书是真的,但证书已经废弃,或者被加入了黑名单。所以,对于一些重要的网站【chrome的策略是EV证书,mark1无法验证,apple,招行】,除了验证证书真伪,还需要验证证书的有效状态。有3种方式验证证书是否有效其中CRL是指被废弃的证书列表,CRL需要客户端原创 2021-04-24 12:02:06 · 348 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---27 | 更好更快的握手:TLS1.3特性解析
27 | 更好更快的握手:TLS1.3特性解析TLS1.3 发布于2018年,在保证兼容性的背景下,增强了安全性,提高了性能。兼容性:为了兼容性大量支持TLS1.2的老旧设备,TLS1.3采用了和1.2一样的报文格式,甚至版本号都伪装成1.2,它通过extension:support_versions字段标识其支持1.3。注1:wireshark有一定的智能型,能够根据Server Hello的回应,把Client Hello标记为1.2,即使Client Hello消息是按1.3格式发送的注2:原创 2021-04-23 20:21:33 · 378 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---26 | 信任始于握手:TLS1.2连接过程解析
26 | 信任始于握手:TLS1.2连接过程解析TLS的几种子协议及结构记录协议(Record Protocol),相当于是一个消息容器,承载其它协议,它包括一个TVL,描述其承载的其它协议如上图,这是一个Server Hello消息,一条TLS报文,包含了4条TLS handshake Protocol警报协议(Alert Protocol)握手协议(Handshake Protocol), type=22,wireshark 中过滤条件tls.record.content_type22或t原创 2021-04-23 16:38:56 · 1078 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---25 | 固若金汤的根本(下):数字签名与证书
25 | 固若金汤的根本(下):数字签名与证书黑客虽然拿不到会话密钥,无法破解密文,但可以通过窃听收集到足够多的密文,再尝试着修改、重组后发给网站。因为没有完整性保证,服务器只能“照单全收”,然后他就可以通过服务器的响应获取进一步的线索,最终就会破解出明文。—这里说的是对称加密的安全性和算法,秘钥长度,分组模式相关。比如以AES128-ECB方式加密,明文特征无法被隐藏,容易被破解;AES-CBC缺少hmac,无法保证消息的完整性;所以安全套件通常选AES-GCM,明文特征被隐藏并带有hmac,所以数据原创 2021-04-22 15:25:46 · 506 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---24 | 固若金汤的根本(上):对称加密与非对称加密
24 | 固若金汤的根本(上):对称加密与非对称加密对称加密加密速度快,无法解决秘钥传递问题,目前常见的有AES256,CHACHA20。注:和一般意义上认知的密码不同,TLS中的“密钥”就是一长串的数字,不包括字符。对称分组加密模式因为AES只能对固定长度的数据加密,因此需要配合分组算法,常用的分组模式又ECB,CBC,CCM,GCM非对称加密RSA 秘钥交换+加密解密DH 秘钥交换ECDHE 椭圆曲线密码交换ECDSA 数字签名常用曲线:P-256[别名:prime256v1:se原创 2021-04-21 16:53:30 · 182 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---23 | HTTPS是什么?SSL/TLS又是什么?
23 | HTTPS是什么?SSL/TLS又是什么?为什么要有 HTTPS?因为HTTP消息是明文传输的,任何中间人都可以截获,查看,修改HTTP消息,所以HTTP是不安全。什么是安全?网络通讯安全,要解决4方面的问题:机密性: 用加密算法加密来保证消息的机密性,即消息只对通讯双方可见,中间人即使截获,也无法看到消息内容。对称加密速度快,但秘钥交换是个问题,而且最好秘钥不固定,每会话一个秘钥。通常用非对称算法加密对称秘钥,秘钥产生,交换过程是重点和难点完整性: 消息不允许被篡改,如果没有完整原创 2021-04-21 15:11:29 · 354 阅读 · 1 评论 -
罗剑锋透视HTTP协议学习笔记---32 | 未来之路:HTTP/3展望
32 | 未来之路:HTTP/3展望HTTP/2 的“队头阻塞”HTTP/2部分解决了HTTP的队头阻塞问题,但由TCP带来的队头阻塞问题,不从协议底层改造是无法解决的。TCP有丢包重传机制,所有数据对TCP而言就是有序的字节流,所以虽然在HTTP层面流是乱序的,收发次序互不影响,但在TCP层面TCP分组仍然是有序的,在弱网场景下,如果队头发生丢包重传,就会有队头阻塞问题。HTTP/3从协议底层进行改造,底层协议替换为UDP,并实现了QUIC协议,QUIC协议集成了TLS,并实现了类似HTTP/2的多原创 2021-04-13 12:32:51 · 224 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---33 | 我应该迁移到HTTP/2吗?
33 | 我应该迁移到HTTP/2吗?HTTP/2的优点兼顾安全和性能,同时语义完全兼容HTTP/1,上层应用无需修改,就可以运行在HTTP/2上。安全:TLS1.2+性能:HPACK报头压缩解决问题:HTTP队头阻塞HTTP基于请求-响应工作模式,它是半双工且串行的,对于HTTP/1而言,一个TCP连接资源利用率很低。所以HTTP/1中,一个域名会最多并发6个连接。HTTP/2中,一个域名对应一个TCP连接,利用多路复用多个请求应答流并行,提高了TCP连接的利用率。另外配合流的优先级调度,服原创 2021-04-06 15:40:39 · 150 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---31 | 时代之风(下):HTTP/2内核剖析
31 | 时代之风(下):HTTP/2内核剖析连接前言连接前言 connection prefacePRI * HTTP/2.0\r\n\r\nSM\r\n\r\n在wireshark里称为magic,是一个纯HTTP/1消息,意思是以后的消息切换到HTTP/2本来h2在ALPN或h2c的connection/upgrade就已经确认了使用h2,发送magic似乎有点多余。实际的magic消息包括3个流,其中Magic是一个标准HTTP/1消息settings,windows_upda原创 2021-04-06 14:43:58 · 436 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---30 | 时代之风(上):HTTP/2特性概览
30 | 时代之风(上):HTTP/2特性概览为什么不是 HTTP/2.0HTTP/2的前身是GOOGLE研发的SPDY协议,经过IETF的规范,目前的标准是RFC7540。HTTP/2的命名不是HTTP/2.0,它摒弃了小版本号,以后只有HTTP/2,HTTP/3。这是因为HTTP是互联网基础技术,版本的进化需要相对的稳定性,频繁的版本变更容易造成混乱。兼容 HTTP/1因为有大量现有资源基于HTTP/1,所以必须要兼容HTTP/1。HTTP/2在URI层面,没有引入新的scheme,还是htt原创 2021-04-05 22:29:26 · 177 阅读 · 1 评论 -
罗剑锋透视HTTP协议学习笔记---22 | 冷链周转:HTTP的缓存代理
22 | 冷链周转:HTTP的缓存代理HTTP的缓存代理就是提供缓存服务的代理服务器,由于它处于HTTP传输路径的中间,所以它兼具Cache-control在服务器,客户端2个方向的设置,同时又特有代理服务器的若干缓存配置属性。缓存是怎么来的?缓存是某次用户的直接或间接请求,存储在客户端或缓存代理服务器上的某个URI标识的资源。缓存策略按方向可以分为web服务器缓存策略,客户端缓存策略web服务器缓存策略应用到客户端和缓存服务器,是一组Cache-Control的设置,且并不会区分,即客户端,代理原创 2021-03-24 08:53:33 · 215 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---21 | 良心中间商:HTTP的代理服务
21 | 良心中间商:HTTP的代理服务代理服务典型的HTTP模型是一发一收,只有2个角色参与,即客户端和服务端。但HTTP真实应用场景,往往在二者之间的传输链路上引入代理服务器。代理服务器在HTTP通讯中扮演双重角色,从客户端看来,它是服务器,从服务器看来它是客户端。代理服务器可以有多个,形成有序的数据传输链条,对任意2个临近的节点,它们仍然遵循HTTP一发一收的工作模式。代理服务器不产生数据,但会对数据进行加工,分发,缓存。client — proxy server — origin serve原创 2021-03-22 11:47:58 · 230 阅读 · 1 评论 -
罗剑锋透视HTTP协议学习笔记---20 | 生鲜速递:HTTP的缓存控制
20 | 生鲜速递:HTTP的缓存控制缓存是计算机系统中加快访问速度的常用手段,基于HTTP的工作模型,缓存既可以保存在客户端,也可以保存在服务器端,本节讲的是缓存保存在客户端。缓存保存的是请求资源的副本,网络上的请求资源可能会动态更新,一段时间前取得的资源,可能已经变更,如何在效率和可用性间达成平衡是一个问题。HTTP采取的策略是区分资源,频繁更新的数据,动态生成的数据,不缓存。另外,为可缓存资源做有效期标记,根据资源更新的频率,设定不同长度的缓存有效期。缓存有效期只是个估计值,资源是否过期,不原创 2021-03-21 17:30:28 · 236 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---19 | 让我知道你是谁:HTTP的Cookie机制
19 | 让我知道你是谁:HTTP的Cookie机制Cookie【RFC6265】是服务器委托浏览器存储在浏览器本地的数据,其目的是维护HTTP会话的状态信息工作流程:服务器端响应报文用Set-cookie: key=value + 若干参数设置cookie客户端请求消息中带上相关cookie,标识客户端注: Cookie不是HTTP标准,它的分隔符是";“而不是”,"max-age: date+t1+t2, 消息接收时间+t2,优先级高于expires注: date是消息生成时刻,t1是原创 2021-03-20 12:00:01 · 160 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---18 | 四通八达:HTTP的重定向和跳转
18 | 四通八达:HTTP的重定向和跳转WEB的精髓就是超文本/媒体,即通过超链接把文件连接起来,形成一种新的网状的文档结构。超连接可以由用户点击连接主动跳转,也可以通过3xx状态码,配合Location头字段,实现被动跳转。网页的重定向,即由web服务器,自主的跳转到其它URI,典型3xx状态码有301代表永久重定向,即原URI永久失效,浏览器,爬虫可据此更新到新URI302代表临时重定向,即原URI临时生效,未来会恢复,浏览器,爬虫不会更新303 See others,要求新请求方式是G原创 2021-03-19 10:00:40 · 318 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---17 | 排队也要讲效率:HTTP的连接管理
17 | 排队也要讲效率:HTTP的连接管理HTTP中所谓的连接管理是指的对TCP连接的管理,简单说可以用Connection头字段控制HTTP使用TCP连接的策略。Connection: keep-alive #表示长连接Connection: close #表示本次会话结束后关闭TCP连接Connection: upgrade #表示协议升级,但这是另外一个故事。几个概念:短连接长连接0.9/1.0里是短连接1.0支持长连接,但缺省没有打开所谓短连接是指HTTP完成一次收发后即可关闭原创 2021-03-18 21:54:23 · 176 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---16 | 把大象装进冰箱:HTTP传输大文件的方法
16 | 把大象装进冰箱:HTTP传输大文件的方法处理大文件的几种方式1. 压缩对body数据进行压缩,用头字段Accept-Encoding/Content-Encoding,对文本文件效果较好,但对image等已经压缩的文件没有意义。Accept-Encoding可以罗列若干客户端支持的压缩方式,服务器端可以挑选一个压缩方式,如果不支持客户端的压缩方式,则不回应Content-Encoding.另外,如果服务器负载太高【CPU overload >80%】,或是已压缩的文件,服务器也不原创 2021-03-17 13:45:44 · 360 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---15 | 海纳百川:HTTP的实体数据
15 | 海纳百川:HTTP的实体数据这一节开始讲常用的头字段,学习头字段应理解其语义,语法,逻辑,用途和适用的场景。HTTP的基于请求应答的工作模式,会通过Accept-x系列头字段协商body中的客户端期望的接收的数据的数据类型,语言类型,文本编码方式,压缩方式等。典型的应用逻辑是客户端在请求中携带Accept-x 头字段,而服务端会回应Content-x头字段表示实际body中携带的数据的属性。1.数据类型, 利用MIME定义的数据类型,格式为type/subtype,用Accept头字段表示客原创 2021-03-16 16:02:43 · 183 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---14 | HTTP有哪些优点?又有哪些缺点?
14 | HTTP有哪些优点?又有哪些缺点?优点和缺点都和应用场景有关,在某些场景下的优点,在其他场景下可能是缺点。灵活可扩展是HTTP的核心优点。无状态可以理解为是双刃剑,无状态意味着实现简单,在集群环境了,所有web服务器都是一样的,简单堆硬件,就可以达到提速的效果。无状态也意味着对于事务类请求,比如电商网站购物,涉及一些列有相互关联的请求的场景是缺点。如果不记录状态,则难以处理。文本协议算一个次要缺点,HTTP文本协议定义比较宽松,大小写,分隔符,没有严格定义,容易导致歧义。不安全是主要缺点原创 2021-03-14 16:46:37 · 253 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---13 | HTTP有哪些特点?
13 | HTTP有哪些特点?灵活可扩展灵活可扩展体现在HTTP的消息结构灵活,无论是请求方法,状态码,头字段,都可以灵活扩充,而基本的语义,逻辑,消息结构保持不变。可靠传输基于TCP的可靠传输应用层是最通用的应用层协议,原则上可以传输任意二进制数据,还可以用浏览器渲染呈现。请求应答模式应答模式符合典型的web应用场景,缺点是对于实时性要求很高的场景,如游戏,不能胜任。无状态前后消息之间没有联系,不记录会话状态,优点是实现简单,缺点是无效冗余数据多。引入cookie解决原创 2021-03-14 16:02:22 · 156 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---12 | 响应状态码该怎么用?
12 | 响应状态码该怎么用?在HTTP中,客户端,服务端通过响应状态码就客户端请求处理情况进行交互。响应状态码是一个3位10进制数,从100-599,分为5类:1xx 表示协议处理处于中间状态,还需要后续操作101 switching protocols,如webSocket中从HTTP切换到ws,细节见38讲,无法验证2xx 正常返回200 OK,全返回204 No Content,无body206 Partial Content,部分返回,细节需要参考16课, 可以配合Conte原创 2021-03-13 11:07:32 · 615 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---11 | 你能写出正确的网址吗?
11 | 你能写出正确的网址吗?URI,URN和URLURI是URN和URL的超集,URN是用名字描述资源,如磁力链接magnet:?xt=urn:btih:而URL是用位置描述资源,HTTP中使用的是URL,如http://www.baidu.com一个URI可以分解为如下部分scheme://host:port/path?queryscheme,协议名host:port又合称为authority,定位到特定主机path,路径,以/开头query,查询参数,是以?开始的键值对,键值对原创 2021-03-12 14:44:32 · 724 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---10 | 应该如何理解请求方法?
10 | 应该如何理解请求方法?基于HTTP协议的设计初衷,请求方法表达的语义是如何对web服务器上的资源进行操作,包括但不限于增删改查,随着协议的演进,请求方法从最初的0.9的GET方法扩展到目前1.1的8个标准方法,包括:GET,获取资源HEAD,获取元数据POST,向URI指定的资源提交新增的数据,类似insertPUT,向URI指定的资源更新数据,类似updateDELETE,删除资源CONNECT,在web服务器和客户端之间为第三方服务器建立隧道OPTIONS,查询服务端对资源支原创 2021-03-12 12:09:59 · 196 阅读 · 1 评论 -
罗剑锋透视HTTP协议学习笔记---09 | HTTP报文是什么样子的?
09 | HTTP报文是什么样子的?报文结构HTTP/1.1是纯文本协议,它的报文结构是header+body, header又可以细分为起始行和头部。在请求报文里起始行称为请求行,响应报文里称为状态行。请求行格式请求行包括方法,URI,版本三部分,用空格分隔,最后以CRLF结尾,即\r\n或0xd0xa, 如:GET / HTTP/1.1状态行包括版本,状态码,原因三部分,也是用空格分隔,最后以CRLF结尾, 如:HTTP/1.1 200 OK头部字段就是一组键值对,如Host:原创 2021-03-11 20:52:08 · 274 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---08 | 键入网址再按下回车,后面究竟发生了什么?
08 | 键入网址再按下回车,后面究竟发生了什么?本小节从使用 IP 地址访问 Web 服务器,使用域名访问 Web 服务器,真实的网络世界3个维度分析web访问过程。使用IP或域名访问web服务器的区别只在与是否发起DNS请求,获得服务器的IP。而真实世界中,区别在于,DNS请求返回的可能不是目标web服务器的地址,而是某个代理服务器或CDN的IP, 根据所获取的资源不同,回应的消息来源,可能源自目标web服务器或代理服务器。基本流程如下:解析URL获得域名,端口号如果是域名发起DNS查原创 2021-03-11 12:50:53 · 104 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---07 | 自己动手,搭建HTTP实验环境
07 | 自己动手,搭建HTTP实验环境实验环境基于openresty,相当于在本地搭建了一个web服务器,搭建过程比较简单,按文档步骤即可。用到的工具有浏览器:Chrome或firefox抓包工具:wireshark终端工具: telnet注1: 教程基于比较老版本的openresty, 对于https中TLS仅支持1.2,而新版openresty直接支持TLS1.3。TLS1.2的握手过程和TLS1.3有点不同,需要用教程自带的抓包结果观察1.2的握手过程。注2: 浏览器发送HTTP请原创 2021-03-10 14:44:07 · 247 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---06 | 域名里有哪些门道?
06 | 域名里有哪些门道?域名DNS和HTTP有间接的关系,用户访问特定网络资源通常以域名形式而非IP方式。本节表述IP转MAC的说法是错误的,IP是封装在MAC内部的,MAC具有本地属性,而IP具有网际属性,每经过一跳,会重新构造MAC层,而IP层不变。【不考虑流量控制】DNS查询的来源及查询优先级浏览器DNS缓存系统DNS缓存本地DNS服务器缓存/host文件本地DNS服务器根DNS二级DNS权威DNS注:本地DNS服务器通常是本地运营商维护的,或企业自己搭建的,或知名企业公原创 2021-03-10 11:38:33 · 175 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---05 | 常说的“四层”和“七层”到底是什么?“五层”“六层”哪去了?
05 | 常说的“四层”和“七层”到底是什么?“五层”“六层”哪去了?网络分层模型的精髓在于把通过计算机网络提供服务这个复杂的事情,分解成若干层,每一层解决一部分问题,下层为上层服务,同时对下层透明,而上层不用关心下层的实现细节,而只需关注自己要解决的问题。这也意味着,下层可以被替换或更新,而不影响上层的服务。例如IPv4换成IPv6对于上层应用而言是透明的。缺点是,所有的数据流动需要按序流经整个协议栈,开销较大,对性能要求高的场景,可能不适用。TCP/IP网络模型OSI网络模型TCP/IP和OSI原创 2021-03-09 10:35:03 · 233 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---04 | HTTP世界全览(下):与HTTP相关的各种协议
04 | HTTP世界全览(下):与HTTP相关的各种协议TCP/IP和HTTP的关系HTTP是应用层协议,构建在TCP/IP之上。TCP为HTTP提供了可靠的数据传输通道,IP解决网际间寻址路由问题,所以HTTP更准确应称为HTTPover TCP/IP。DNS,URI和HTTP的关系DNS+URI为HTTP提供定位网络资源的能力。DNS提供域名到IP的映射,可以定位到主机。URI可以定位到主机上的具体资源。HTTPS和HTTP的关系HTTPS = HTTP+TLS,是安全的H原创 2021-03-09 09:18:35 · 235 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---03 | HTTP世界全览(上):与HTTP相关的各种概念
03 | HTTP世界全览(上):与HTTP相关的各种概念本节主要介绍和HTTP相关的元素或应用互联网,WEB和HTTP的关系WEB是互联网的子集,是互联网的重要组成部分,主要提供信息浏览服务。 HTTP是承载WEB上超文本传输的基础协议。浏览器,主要的HTTP客户端,也称作客户代理【user-agent】WEB服务器,提供WEB服务的硬件和软件的集合。提供WEB服务器的物理服务器即可以是一台独立的服务器,也可能是一个服务器集群。爬虫,另一种主要的HTTP客户端,是可以抓取网络信息的原创 2021-03-08 15:32:52 · 241 阅读 · 2 评论 -
罗剑锋透视HTTP协议学习笔记---02 | HTTP是什么?HTTP又不是什么?
02 | HTTP是什么?HTTP又不是什么?HTTP 就是超文本传输协议,也就是 HyperText Transfer Protocol。HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范具体拆解可以从3个维度分析协议就是一种约定和规范,由多人/计算机参与和共同遵守。既然是协议,也就意味着它是静态的,没有具体的实体,需要由参与方如浏览器,web服务器去实现,虽然遵守相同的协议约定,但不同实现会有差异,也就带来兼容性问题。传输,是指HTTP的目的,典型原创 2021-03-08 09:30:53 · 211 阅读 · 0 评论 -
罗剑锋透视HTTP学习笔记---01 | 时势与英雄:HTTP的前世今生
01 | 时势与英雄:HTTP的前世今生HTTP的历史时代背景互联网,20世纪60年代TCP/IP, 20世纪70年代发明人Tim Berners-Lee 蒂姆·伯纳斯 - 李,1989年的一篇论文,奠定了www(web)的3个重要基石:URI, HTML, HTTP前端的3个基本技术栈: HTML/CSS/JavaScript名词辨析:顶级域名[即一级域名]: 通用顶级域名,如.com,.org 顶级国家域名, 如.cn二级域名: xxx+顶级域名,如baidu.原创 2021-03-07 21:46:28 · 137 阅读 · 0 评论 -
罗剑锋透视HTTP协议学习笔记---开篇词|To Be a HTTP Hero
开篇词|To Be a HTTP Hero课程的目的和目标:现实需求:HTTP是支撑web服务的核心技术之一,应用广泛,是相关从业者需要掌握的基本技能之一。HTTP看似简单,实则涉及的内容十分庞杂,从HTTP1.1,HTTPS,到HTTP/2,HTTP/3,真正透彻掌握者不多。现状:正式资料少且陈旧HTTP权威指南[2012],图解HTTP[2014],HTTP/2 in Action 中文版[2020]权威资料难【HTTP相关RFC 】网上资料杂课程目标:既有深度,又有广度既有理原创 2021-03-06 22:42:25 · 314 阅读 · 0 评论 -
HTTP的连接管理
所谓的连接是指的TCP连接, 所谓的连接管理,是指对TCP连接的管理几个概念:短连接长连接0.9/1.0里是短连接1.0支持长连接,但缺省没有打开所谓短连接是指HTTP完成一次收发后即可关闭TCP连接, 对于有大量HTTP请求的场景,收发效率低下HTTP/1.1缺省启用长连接,即HTTP发起一个请求后建立的TCP连接可以为后继的HTTP请求使用,而无需关闭,再新建TCP连接。因为1.1缺省支持长连接,所以无需在头部添加任何字段,即启用长连接。客户端/服务器都可以用Connection: k原创 2021-02-08 17:27:07 · 265 阅读 · 0 评论