图解HTTP读书记录

主要记录一下图解HTTP的读书笔记,最后一章WEB攻击没怎么看,总体来看还是很简单易懂的一本书

TCP/IP协议分为4层

应用层:应用层决定了向用户提供应用服务时通信的活动。

传输层:传输层对上层应用层, 提供处于网络连接中的两台计算机之间的数据传输。

网络层:网络层用来处理在网络上流动的数据包。 数据包是网络传输的最小数据单位。 该层规定了通过怎样的路径到达对方计算机, 并把数据包传送给对方。

数据链路层:用来处理连接网络的硬件部分。 包括控制操作系统、 硬件的设备驱动,及光纤等物理可见部分。硬件上的范畴均在链路层的作用范围之内。

image-20210727125941345

HTTP协议作用

负责生成请求报文(请求方)或响应报文(接收方)

TCP协议作用

对HTTP请求报文进行分割(请求方)或重组(接收方)

IP协议作用

搜索对方的地址,一边中转,一边传送

URL与URI

URL:统一资源定位符

URI:统一资源标识符(是由某个协议方案表示的资源的定位标识符。 协议方案是指访问资源所使用的协议类型名称,包含不止于URL)

URI格式

image-20210727131155180

HTTP 协议规定

请求从客户端发出, 最后服务器端响应该请求并返回。 换句话说, 肯定是先从客户端开始建立通信的, 服务器端在没有接收到请求之前不会发送响应。

请求报文

image-20210727131543389

响应报文

image-20210727131632448

OPTIONS请求

查询HTTP服务器端支持的HTTP方法种类。

TRACE请求

发送请求时,在Max-Forwards首部字段中填入数值,每经过一个服务器端就将该数字减1,当数值刚好减到0时,就停止继续传输,最后接收到请求的服务器端则返回状态码200 OK的响应。(用于追踪传输)

CONNECT请求

CONNECT 方法要求在与代理服务器通信时建立隧道, 实现用隧道协议进行 TCP 通信

HTTP/1.1默认持久连接

建立 1 次 TCP 连接后进行多次请求和响应的交互,减轻了服务器端的负载,加快了WEB页面显示速度

管线化技术

不等待响应,直接发送下一个请求,管线化技术则比持久连接还要快

可以对传输内容编码压缩

分块传输编码

分块传输编码会将实体主体分成多个部分(块)。每一块都会用十六进制来标记块的大小,而实体主体的最后一块会使用“0(CR+LF)”来标记

Range请求头

只请求部分数据(注意第3个不是负3000是)

image-20210727150216681

针对范围请求,响应会返回状态码为206的响应报文

如果服务器端无法响应范围请求, 则会返回状态码 200 OK 和完整的实体内容

内容协商

内容协商机制是指客户端和服务器端就响应的资源内容进行交涉,然后提供给客户端最为适合的资源,内容协商会以响应资源的语言,字符集、编码方式等作为判断的基准

服务器驱动协商:由服务器端进行内容协商。以请求的首部字段为参考,在服务器端自动处理

客户端驱动协商:由客户端进行内容协商的方式,比如按 OS 的类型或浏览器类型,自行切换成 PC 版页面或手机版页面

透明协商:由服务器端和客户端各自进行内容协商的一种方法

状态码类别

image-20210727151016791

204 No Content

请求成功但是没有资源返回

206 Partial Content

返回客服端的范围请求

401 Unauthorized

请求需要认证

使用代理的好处

利用缓存技术减少网络带宽的流量,组织内部针对特定网站的访问控制,获取访问日志

隧道

隧道的目的是确保客户端能与服务器进行安全的通信,隧道本身不会去解析 HTTP 请求

浏览器缓存

强缓存:浏览器发现缓存未过期就不再请求服务器,若过期,请求服务器并缓存

Cache-Control:相对缓存失效时间

Expires:绝对缓存失效时间(依赖客服端时钟准确)

对比缓存:浏览器带着资源标识请求服务器,服务器对比,若资源未发生变化返回304让客服端使用缓存,发生更改返回新资源文件

Etag/If-None-Match:Etag资源版本号,通过资源版本号判断是否可以使用缓存

Last-Modified/If-Modfied-Since:通过服务端与客服端的最后修改时间判断是否使用缓存

优先级:强缓存(Cache-Control)>强缓存(Expires)>对比缓存(Etag/If-None-Match)>对比缓存(Last-Modified/If-Modfied-Since)

Via请求头

报文经过代理或网关时,会先在首部字段 Via 中附加该服务器的信息,然后再进行转发,首部字段 Via 不仅用于追踪报文的转发, 还可避免请求回环的发生。所以必须在经过代理时附加该首部字段内容

Accept请求头

image-20210727154807172

指定可接收的类型与权重,q=[0-1]指定权重默认为1

Authorization请求头

image-20210727155059983

用于携带用户的认证信息

Host请求头

若相同的 IP 地址下部署运行着多个域名,使用Host指明请求的那个域名

Max-Forwards请求头

服务器在往下一个服务器转发请求之前,Max-Forwards 的值减 1 后重新赋值。当服务器接收到 Max-Forwards 值为 0 的请求时,则不再进行转发,而是直接返回响应

ETag请求头

强ETag值,不论实体发生多么细微的变化都会改变其值

image-20210727160225917

弱ETag值只有资源发生了根本改变才会改变 ETag 值。这时会在字段值最开始处附加 W/

image-20210727160335167

Location响应头

image-20210727160502245

一般与重定向配和指定新网址

Set-Cookie响应头

image-20210727161252926

Cookie常见属性

image-20210727161442646

HTTP缺点

通信使用明文( 不加密),内容可能会被窃听

不验证通信方的身份, 因此有可能遭遇伪装

无法证明报文的完整性, 所以有可能已遭篡改

HTTP+加密+认证+完整性保护=HTTPS

image-20210727162449476

SSL采用公私钥加密算法

BASIC 认证

image-20210727163555928

Base64编码方式不是加密可以轻易窃取内容,无法实现认证注销操作

DIGEST 认证

image-20210727163921448

Comet

通常, 服务器端接收到请求, 在处理完毕后就会立即返回响应, 但为了实现推送功能, Comet 会先将响应置于挂起状态, 当服务器端有内容更新时, 再返回该响应。 因此, 服务器端一旦有更新, 就可以立即反馈给客户端

缺点:一次连接的持续时间也变长了。 期间, 为了维持连接会消耗更多的资源

JSON类型包含

false,null,true,对象,数组,数字,字符串

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值