1
0

1、HTTP1.1协议.md 15 KB

[TOC]

1、浏览器发起HTTP请求的典型场景

image-20220806144233998

image-20220806144244409

2、HTTP协议

2.1、定义

​ 一种无状态的、应用层的、以请求/应答方式运行的协议,它使用可扩展的语义和自描述消息格式,与基于网络的超文本信息系统灵活的互动

2.2、基于ABNF定义的HTTP消息

image-20220806145420006

image-20220806145434440

image-20220807223707927

image-20220806145915215

2.3、网络为什么要分层?

OSI三次模型

image-20220806151123689

  • 应用层:HTTP,P2P实际所在的层次,解决业务问题
  • 表示层:负责将网络消息转换为应用层可以读取的消息
  • 会话层:建立session,建立会话和管理
  • 传输层:进程之间的通讯,报文可达。TCP
  • 网络层:广域网,IP协议
  • 数据链路层:局域网中,二层路由器
  • 物理层:物理介质。交换机

TCP/IP协议

image-20220806151624737

2.4、HTTP解决了什么问题?

image-20220806154100285

2.5、HTTP设计遵循的web架构原则

image-20220806154143306

image-20220806155015178

  • a路径:代理+反向代理+服务器
  • b路径:直接到达服务器
  • c路径:代理+服务器

3、五类架构风格推到出HTTP的REST架构

3.1、架构风格

image-20220806155335413

3.1.1、数据流风格

image-20220806155456202

3.1.2、复制风格

image-20220806162104407

3.1.3、分层风格

image-20220806162157828

image-20220806162335706

3.1.4、移动代码风格

image-20220806162518481

3.1.5、点对点风格

image-20220806162745010

3.2、风格演化(LCODC$SS)

image-20220806163012278

4、URI的基本格式以及与URL的区别

4.1、什么是URI

image-20220806202916858

image-20220806203014182

4.2、URI的组成

image-20220806204504063

4.3、URI的格式

image-20220806204606335

image-20220806204631447

image-20220806204759320

4.4、相对URI

image-20220806204828999

4.5、URI编码

4.5.1、为什么要进行URI编码?

image-20220806204928022

image-20220806205027008

4.5.2、编码方式

image-20220806205107975

5、HTTP请求行

5.1、请求格式

image-20220806205257838

image-20220806205305103

image-20220806205358329

5.2、常见方法

image-20220806205426999

image-20220806205908230

6、HTTP响应

6.1、HTTP响应行

image-20220806210436558

6.2、HTTP响应码

image-20220806210459359

image-20220806210505853

image-20220806210512198

image-20220806210521437

image-20220806210530673

image-20220806210540664

image-20220806210549017

image-20220806210558017

image-20220806210603899

image-20220806210609644

image-20220806210615289

7、长连接与短连接

7.1、简单的短连接

image-20220806213308581

image-20220806213250798

7.2、持久的长连接

image-20220806213257668

7.3、connect注意事项

image-20220806213614563

image-20220806213640171

8、HOST头部

image-20220807193047285

8.1、如何传递IP地址到服务器?

image-20220807193318110

image-20220807193522235

9、请求与响应的上下文

9.1、User-Agent

image-20220807193726574

9.2、Referer

image-20220807194722974

9.3、From

image-20220807194844430

9.4、Server

image-20220807194911574

9.5、Allow 与Accept-Ranges

image-20220807194934580

10、内容协商

10.1、定义

image-20220807195159024

10.2、分类

image-20220807195148845

10.2.1、Proactive

image-20220807195302609

10.2.2、Reactive

image-20220807195423426

10.3、协商要素

image-20220807195541807

image-20220807195553855

image-20220807195823150

11、HTTP包体的传输方式

11.1、定义

image-20220807200050541

11.2、传输方式

11.2.1、方式一

image-20220807200118145

image-20220807202245823

11.2.2、方式二

image-20220807200139017

image-20220807201551020

image-20220807202120503

11.3、其他头部

image-20220807202328521

12、form表单提交协议

12.1、定义

image-20220807202536077

12.2、关键属性

image-20220807220610447

image-20220807221107421

image-20220807221140643

13、断点续传与多线程下载

13.1、实际场景

image-20220807221816578

13.2、HHTP Range规范

image-20220807221953545

image-20220807222000149

image-20220807222012403

若if-Range头部校验不通过,会返回0-end(end表示此次发送的结尾)这么多的数据

与if-match头部返回两次性能优化

13.3、服务器响应

image-20220807222410199

image-20220807222417961

image-20220807223049652

14、cookie的格式和约束

14.1、定义

image-20220807223443923

image-20220807223729500

image-20220807223803887

14.2、问题与限制

image-20220807224009675

image-20220807224017199

15、session

15.1、cookie与session

image-20220807224428454

image-20220807224528081

15.2、三方cookie

image-20220807224812200

16、浏览器的同源策略

16.1、为什么需要?

image-20220807225300099

image-20220807225411779

image-20220807225446382

image-20220807225638474

16.2、定义

image-20220807225703603

image-20220807230346243

16.3、CSRF

image-20220807230932801

这个方式已经被破解,攻击者可以获取你的全部cookie

image-20220807231012250

16.4、CORS简介

image-20220808205400843

image-20220808205649293

image-20220808210506819

image-20220808210844828

image-20220808210851894

17、条件请求

17.1、定义

image-20220808211110446

image-20220808211349935

17.2、验证

image-20220808211457292

image-20220808211536423

image-20220808211547520

image-20220808211700742

17.3、应用场景

17.3.1、缓存更新

image-20220808211714562

image-20220808211843742

17.3.2、增量更新

image-20220808211853255

image-20220808211902719

image-20220808211908257

image-20220808212025760

17.3.3、更新丢失

image-20220808212342614

image-20220808212358728

image-20220808212410381

image-20220808212453408

17.4、nginx模块如何条件验证

image-20220808212552355

18、HTTP缓存的工作原理

18.1、原理

image-20220809211113345

image-20220809211144105

image-20220809211155084

18.2、私有与共享缓存

image-20220809211610966

image-20220809211653355

18.3、缓存原理

image-20220809211729845

18.4、判断缓存是否过期

image-20220809211845226

image-20220809212115550

image-20220809212151863

18.5、Age 头部及 current_age 的计算

image-20220809212244390

image-20220809212444480

19、Cache-Control 头部

19.1、定义

image-20220809212726752

19.2、请求的含义

image-20220809212911441

19.3、响应的含义

image-20220809212945172

image-20220809213116535

20、什么样的响应会被缓存?

20.1、定义

image-20220809213328323

image-20220809213537383

20.2、使用条件

image-20220809213601029

image-20220809213630731

image-20220809213645854

20.3、如何缓存更新频率不同的资源

image-20220809213823569

image-20220809213828831

image-20220809213958809

image-20220809214025329

21、HTTP重定向

21.1、为什么需要 URI 重定向?

image-20220809214131056

21.2、重定向流程

image-20220809214222467

image-20220809214241598

21.3、重定向响应返回码

image-20220809214319604

image-20220809214329100

21.4、重定向循环

image-20220809214753825

22、Http Tunnel 隧道

22.1、目的

image-20220811204734585

22.2、请求行

image-20220811205055394

22.3、常见应用

image-20220811205114071

image-20220811205128401

23、网络爬虫

23.1、定义

image-20220811205252126

23.2、对待爬虫的态度

image-20220811205447322

image-20220811205456536

image-20220811205505728

image-20220811205514497

23.3、网络爬虫如何抓取数据?

image-20220811205532682

image-20220811205626891

image-20220811205644784

24、HTTP资源的认证

24.1、定义

image-20220811211040737

image-20220811212654282

24.2、响应

image-20220811212738439

25、DNS协议解析域名

25.1、定义

image-20220811221104618

25.2、结构

image-20220811221123327

image-20220811221139774

25.3、查询与响应

image-20220811221236488

image-20220811221347329

image-20220811221516540

image-20220811221525905