图解HTTP读书笔记

1. 第一章

1.tcp/ip分层

  1. 应用层:
    为用户提供应用服务,比如HTTP,FTP
  2. 传输层:
    对上层应用层提供网络连接,进行数据传输(实现进程到进程之间的通信),(报文打上标记序号和端口号)。TCP/UDP
  3. 网络层:
    处理网络上流动的数据包,规划传输路径( 实现主机到主机之间的通信.)(增加mac地址)。ip
  4. 链路层:
    处理连接网络的硬件部分,包括控制操作系统,硬件设备。路由器,交换机
  5. 物理层

2.通信传输流
在这里插入图片描述
发送端从应用程序往下走,接收端从应用程序往走

ip协议:把数据包发送给对端,两个条件mac地址和ip地址

URI和URL的区别:URL是URI的子集

第二章

http协议

  1. 用于客户端和服务端之间的通信

  2. 通过 请求和相应的交换达成通信

  3. 不保存状态的协议,不做持久化处理
    cookie解决这个弊端

  4. 请求URI的定位资源
    域名和ip地址都可以定位资源

  5. 告知服务器意图的http方法
    get获取资源
    post传输实体的主体
    head获得报文首部
    options询问支持的方法
    tarcer路径追踪
    connection与代理服务器建立隧道

  6. 使用方法下达命令
    GET、POST、HEAD
    在这里插入图片描述

  7. 持久连接可以节通信量
    解决方法1:HTTP keep-alive,只要一端没提出断开链接,则保持TCP连接状态
    好处:减少了TCP重新连接和断开的开销,减轻服务器负载
    方法2:管线化,可以不需要相应直接发送下一个请求

  8. 使用Cookie状态管理
    如果客户端第一次向服务端发送请求,服务端在响应中会添加Cookie,之后客户端再向该服务端发送请求,会在请求头中自动添加Cookie

第三章,http报文内的信息

一、请求报文和响应报文
在这里插入图片描述
在这里插入图片描述
请求行:包含请求方法,请求URI和HTTP版本
状态行:包含响应状态码,原因短语和HTTP版本
首部字段:包含请求和响应的各种条件和属性

二、 编码提升传输效率
1.报文主体和实体差异

  • 报文:http通信基本单位,由8位组字节流组成
  • 实体:作为请求或响应有效载荷数据被传输,内容由实体首部和实体主体组成
    通常报文主体=实体主体,只有在传输进行编码时实体内容才会变化
    2.压缩传输的内容编码
    3.分隔发送的分块传输编码
    每一块用16进制标记

第四章 返回HTTP状态码

在这里插入图片描述
1)2XX成功

  • 200OK
  • 204请求处理成功,但没资源返回
  • 206表示客户端进行了范围请求

2)3XX重定向

  • 301永久性重定向
  • 302临时重定向,请求资源被分配新的URI,希望本次用新的URI
  • 303和302功能相同,唯一不同只能采用GET方法获取资源
  • 304和重定向没关系。缓冲原因
  • 307临时重定向
  1. 4XX客户端错误
  • 400请求报文语法错误
  • 401没有HTTP认证
  • 403请求被服务器拒绝(可能是访问权限)
  • 404服务器没有找到请求资源

4)5XX服务器错误

  • 500服务器执行请求发生错误
  • 503服务器暂时负载或正在维护

第五章 HTTP协作的web服务器

1.用单个虚拟机实现多个域名
2.通信数据转发程序:代理、网关、隧道

代理

  1. 缓冲代理
    代理转发响应时,缓存代理会预先将(缓冲资源) 保存在代理服务器上,当再次接受到相同请求,就可以不从服务器获取,直接发送缓冲中的数据
  2. 透明代理
    请求和响应时,不对报文进行任何加工的代理类型

网关
可以提高通信的安全性,可以使用数据库SQL语句,可以提供非HTTP服务

隧道
建立起一条与其他服务器的通信线路,使用SSL等加密手段,可以确保客户端和服务端安全通信

3.保存缓冲资源

代理服务器保存的一份副本,可以节省通信流量和通信时间

客户端缓冲:如果有效,直接从磁盘读取,不需要和服务端请求获取

HTTP首部

http请求报文:方法+URI+HTTP版本、HTTP首部字段等构成
响应报文:由HTTP版本+状态码+HTTP首部字段组成

HTTP首部字段

传递额外重要信息

  1. 首部字段结构
Content-Type: text/html
//首部字段名:字符串
Keep-Alive: timeout=15, max=100

当出现2个相同首部字段名,浏览器会优先处理第一次出现的首部字段

  1. 4种HTTP首部字段类型
  • 通用首部字段(请求和响应报文都会使用)
    在这里插入图片描述
  • 请求首部字段
    在这里插入图片描述
  • 相应首部字段
    在这里插入图片描述
  • 实体首部字段
    在这里插入图片描述
  1. 通用首部字段
    1) Cache-Control,操作缓冲工作机制
    在这里插入图片描述
  • no-cache:防止从缓冲中返回过期资源
  • no-store:不进行缓冲
  • s-maxage:多用户使用公共缓冲
  • max-age:缓冲最长时间
  • min-fresh:要求缓冲服务器返回至少的缓冲资源
  • max-stale:即使过期也照常接收

2) connection:控制不再转发首部,管理持久化,控制不再转发给代理

  1. 请求首部地址
    • Accept
      在这里插入图片描述

第七章 HTTPS

HTTP缺点

  • 通信使用铭文(不加密),内容可能被窃听
  • 不验证通信方的身份,因此可能遭遇伪装
    (可能确认请求方真是意图,可能被dos攻击)
  • 无法证明报文的完整性,可能被篡改
HTTP+加密+认证+完整性保护=HTTPS
  • https是披着SSL外壳的HTTP
  • https使用混合加密机制
  • SSL要进行加密解密,消耗CPU资源,所以速度会变慢
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值