《图解HTTP》全书内容表述

在这里插入图片描述
(因为最近比较忙,看书比较散,每天学习的时候没有几章节内容分部进行表述,最后以一个全局的视角再去梳理,后续会继续该行为)接下来会以顺序和问题的方式进行一个顺序来进行表述:
  本书一开始就介绍网络传输的情况,什么是HTTP
http:超文本传输协议,web以此作为规范。后面讲到了,因为Web使用量大,导入简单,产生了路径依赖,后续的改近也即是基于HTTP协议进行。
  然后说要了解HTTP必须了解TCP/IP簇,为何?因为网络连接基本基于TCP/IP簇,而HTTP是它们的子集。
  TCP/IP簇是各种协议,协议是指硬件软件通信的各种规范。为了设计能够自由改动让设计变得简单协议簇分成了四层:应用(DNS、FTP)、传输层(TCP、UDP)、网络(IP)和数据链路。括号里是该层常见协议。
应用层:决定提供的服务
传输层:提供数据传输
网络层:处理网上流动的数据包
数据链路层:处理连接网络的硬件

和HTTP有关的仨协议

IP:协议:IP指的是网络被分配节点,可变;对应概念是MAC,网关物理地址,不可变。
ARP:地址解析协议,根据IP地址反找出MAC地址
路由选择:计算机和网络设备只能获悉粗糙的传输路线

TCP协议:TCP在传输层,提供字节流服务,主要确保传输内容可靠性。
三次握手:确保字节流成功送达
DNS:应用层,域名解析服务。
首先一个概念,ip地址就是一堆数字不方便记忆,而英文构成的域名电脑是不认识的,DNS服务就是把域名改成纯数字地址让计算识别。

URL和RUI

怎么确定网络上资源的位置?
URI:(统一资源标识符)就是干这个的。
URL:资源定位符,是URI子集,定位网站地址。
URL格式:使用协议+用户密码+
域名+端口号+文件路径+片段标识符
RFC::征求修正意见书,一些用来指定文档,不是所有网站都遵守

简单的HTTP协议

http协议是通过构建连接达成通信
特性如下:
1、从客户端开始2、不保存状态3、使用URI定位资源

以请求方法的形式告知服务器意图
常用的get post put

优化:
1、持久连接:一次连接多个请求响应
2、管线化:一次连接同时发送多个请求
3、cookie:保存客户端状态,关键侧set-cookie

HTTP报文内的信息

用于HTTP协议交互的信息就是报文
分两类:响应报文和请求报文,都由字符串构成

首先,需要分清一下概念:
实体:最终想要传递的东西,不管报文是否压缩都不会改变
报文:事实上传递的东西,8位字节流
个人理解:报文是实际数据流,实体是最终想要传输的内容。压缩的东西指的是报文。

内容协商机制
例子:google搜索有些电脑打开是英文界面,有些是中文界面。这就是内容协商机制的应用

定义:客户端和服务器交涉,然后提供最合适的资源给客户端

三种技术:服务器驱动协商‘客户端驱动协商和透明协议(各自进行内容协商)

如何提高传输效率?
  以此为基础,通过压缩报文的形式减小传输数据量,增加传输效率。
  常见编码方式我也没记,就记得个gzip(GUN zip)和identity(不压缩),以后实际要用的时候再去看相关知识。
  为了提升传输效率,把内容分块传输,让浏览器分布展示。获取部分请求的关键词是Range,指定获取范围字段,联想后面有个206的状态响应获取部分内容成功
  后面讲了Ajex(异步javascrpt和XML),能实现页面小区域内容的刷新。
下面开始讲HTTP的局限性和一些改进技术(第九章),因为HTTPS涉及的是安全相关,可以和安全一起讲。
HTTP的局限:

  1. 客户端单项请求
  2. 一个连接一个请求
  3. 首部不压缩,内容非强制压缩,效率低

   为了减少传输总量,用了Ajex
  为了保持连接,comet协议,通过延迟答复的形式保持数据实时更新,代价是服务器增加消耗,常用领域是股票和实时通信。

  整体性提升的有俩SPDYHTTP2.0,两者的主要区别:
1、SPDY强制为HTTPS,2.0可以明文
2、两者消息头压缩方式不一样,具体咋样没详细了解
(因为好多知识都需要前置知识,比如了解压缩的算法有哪些,各算法优缺点之类的,然而这不是学习的重点,个人认为只要知道自己不知道这事就行)

SPDY特性:

1. 降低延迟
2. 请求优先级

3. 首部压缩
4. 强制加密报文
5. 服务端推送

HTTP2.0:

1. 新的二进制格式
2. 多路复用

3. 首部压缩
4. 服务端推送

延续一个问题,为什么在HTTP协议基础上改进?
1、用的人多
2、导入简单
其实还有一个问题,安全问题:
3、组织和公司的防火墙如果要允许通过一个协议,那么就要修改防火墙设置,而一般人连接外网用到就是看网页用的HTTP(路径依赖)

HTTP的首部

  刚刚出现了一些名词,首部,加密。那什么是首部?
  要知道这个问题首先得了解报文结构,
报文构成:首部+报文主体
首部返回了请求或响应的细节信息
报文主体主要用于返回内容

请求首部:请求行+请求首部+通用首部+实体首部
响应首部:响应行+响应首部+通用首部+实体首部

请求行:URI+HTTP版
响应行:响应状态+HTTP版本+原因短语

在分清楚各个字段的时候需要分清一个区别和了解一个概念
1、End-to-End 和 Hop-by-Hop有什么区别
缓存代理非缓存代理
前者全程有效,后者跳转一次就没了
例:有个请求的首部有两个字段,end-to-end 压缩方式1,hop-by-hop 压缩方式2
当这个请求到下一个代理的时候,hop-by-hop这个字段就消失了,因为下一个代理把它按照压缩方式2解压内容了,而压缩方式1则是到最终服务器的时候才会按照压缩方式1解压
2、有些字段的命令区别只在于,只对代理服务器的内容有效。
代理服务器作为一个中转点,就是缓存公用资源,减少对网络访问。所以有的部分请求字段只对代理服务器的内容起作用

然后大致讲一下各类型首部干了啥
  通用首部:
动缓存:本地留不留缓存,代理服务器留不留缓存,缓存多久过期;
协议相关:协议是否升级,报文啥时候创建的等
杂七杂八:传输路径,警告等
  请求首部:
host:哪个域名
referer请求从哪里发起
认证信息
支持类型内容、支持压缩方式,支持语言、请求范围
杂七杂八:有匹配信息怎么办、没匹配信息怎么办……
  响应首部:
返回了哪部分数据、返回语言、MD5码验证传输完整性
  报文首部:啥压缩格式

响应状态码

100继续

200成功
  204无内容更新

300重定向
  302和303很像,都是重定向

400客户端错误
  404无资源
  401无认证
  403无权限

500服务器错误
  503正忙

与HTTP协作的服务器

三个概念:
代理
隧道
网关

隧道简单理解就是加密通信
有网关才能上网
代理就是加强版网关,能够过滤请求和信息,缓存已请求过内容作为公用资源以减少对外访问次数

代理分类:
缓存代理:保存资源副本
透明代理:不修改经过的请求

加密相关

面对问题:HTTP明文,易被修改,无验证完整性方法

解决方法:SSL/TSL
HTTPS就是披层SSL的HTTP

HTTP+SSL/TSL=HTTPS

TSL1.0和SSL3.0几乎没有区别,TSL的目的是比SSL更安全,根据查的资料来看,因为TSL比SSL安全性更高,TSL已更普遍,但是因为SSL出现的早所以写作“SSL/TSL”。

加密机制:
共享密钥:双方公用一个密钥加密解密
公共密钥:非对称加密解密,使用公钥加密,私钥解密。公钥谁都能有,私钥只有服务器有。通过公钥和密文对密文进行破解是很难的。这样用户发送私人信息就不会被泄露。

但是有那么几个问题:
公共密钥的可信度怎么保证?
答:通过CA机构,专门发证书即可。
但是带来的问题是CA机构被黑客入侵,那这公开密钥和私用密钥就不安全了。

共享密钥,交换密钥的过程本身就可能被替换。怎么办?
这个问题在所有明文交换密钥过程中都会遇到,所以CA机构给私钥都是不走网络,物理运输。

但是全部信息加密会遇到一个问题,效率太低,传输速度太慢。于是实际使用的时候是混合加密,共享密钥用公用密钥加密,然后敏感内容用共享密钥加密,非重要信息不加密。

关于网络攻击

三个前提:
要攻击的是客户端服务器和上面的资源
HTTP不具备防御功能
请求可在客户端更改

攻击大致分类:
主动攻击:OS命令注入(对SHELL脚本),sql注入
被动攻击:XSS,跨站点请求伪造

其他类型:
破解密码:了解彩虹表,时间和空间的平衡
点击劫持:透明可点击,骗点击
DOS攻击:拒绝服务,核心词过载或者安全漏洞
后门:后门程序等

关于用户验证

表单认证:请求前对输入内容进行校验
SSL客户端双因素认证:除了账号密码外还有别的因素确保是本人认证,如手机短信验证码,问题等

总结完毕,主要是对网络攻击、首部信息,SPDY和HTTP2.0的区别的内容表达不清需要查看笔记
对于WEB构建一章和用户认证一章几乎没有描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值