图解HTTP笔记

一、概述

HTTP(超文本传输协议):用于客户端和服务器端之间的通信.
 为理解HTTP,我们需要先了解 TCP/IP协议族:
 不同的计算机与网络设备要相互通信,双方就必须基于相同的规则:使用什么语言?,怎样开始?,怎样结束?。而我们就把这种规则称为协议。
在这里插入图片描述

TCP/TP协议族里重要的一点就是分层。
TCP/IP协议族按层次分别分为以下4层:应用层、传输层、网络层和数据链路层。
在这里插入图片描述

与HTTP关系密切的协议:IP、TCP和DNS
在这里插入图片描述

URI:统一资源标识符,URI就是由某个协议方案表示的资源的定位标识符。采用HTTP协议时,协议方案就是http。
URL:统一资源定位符,URL正是使用Web浏览器等访问Web页面时需要输入的网页地址。
URI用字符串标识某一互联网资源,而URL表示资源的地点(互
联网上所处的位置)可见URL是URI的子集
在这里插入图片描述

二、介绍

HTTP是一种不保存状态,即无状态(stateless)协议。HTP协议自身不对请求和响应之间的通信状态进行保存。也就是说在HTTP这个级别,协议对于发送过的请求或响应都不做持久化处理。

HTTP/1.1虽然是无状态协议,但为了实现期望的保持状态功能,于是引入了Cookie技术。

HTTP支持的方法:
在这里插入图片描述
持久连接:在HTTP/1.1中,所有的连接默认都是持久连接,但在HTTP/1.0未标准化。
管线化:不用等待响应亦可直接发送下一个请求。
使用COOKIE的状态管理。

三、HTTP报文

在这里插入图片描述
编码:

  1. 压缩传输的内容编码:内容编码指明应用在实体内容上的编码格式,并保持实体信息原样压缩。内容编码后的实体由客户端接收并负责解码。
    常用的内容编码有以下几种。
    gzip (GNU zip)
    compress(UNX系统的标准压缩)
    deflate( zlib)
    identity(不进行编码)

  2. 分割发送的分块传输编码
    在HTP通信过程中,请求的编码实体资源尚未全部传输完成之
    前,浏览器无法显示请求页面。在传输大容量数据时,通过把数据分割
    成多块,能够让浏览器逐步显示页面。每一块十六进制来标记块的大小。

  3. 发送多种数据的多部分对象集合
    如同MIME机制(用于邮件),HTTP协议中也采纳了多部分对象集合,发送的一份报文
    主体内可含有多类型实体。通常是在图片或文本文件等上传时使用。
    多部分对象集合包含的对象如下。
    multipart/form-data :在Web表单文件上传时使用
    multipart/byteranges :状态码206( Partial Content,部分内容)响应报文包含了多个范围的内容时使用。

  4. 获取部分内容的范围请求
    用途:能从之前下载中断处恢复下载。
    执行范围请求时,会用到首部字段 Range来指定资源的byte范围。

  5. 内容协商机制
    内容协商机制是指客户端和服务器端就响应的资源内容进行交涉,
    然后提供给客户端最为适合的资源。内容协商会以响应资源的语言、字
    符集、编码方式等作为判断的基准。
    在这里插入图片描述
    三种类型:1. 服务器驱动协商 2.客户端驱动协商 3.透明协商

四、HTTP状态码

在这里插入图片描述

五、WEB服务器

  1. 用单台虚拟主机实现多个域名
    在这里插入图片描述

    在相同的IP地址下,由于虚拟主机可以寄存多个不同主机名和域
    名的Web网站,因此在发送HTTP请求时,必须在Host首部内完整指
    定主机名或域名的URI

  2. 通信数据转发程序:代理、网关、隧道
    1.代理:一种有转发功能的应用程序,扮演服务器和客户端的中间人。
    代理的方法:按两种基准分类。一种是是否使用缓存,另
    种是是否会修改报文。

     缓存代理:
       代理转发响应时,缓存代理( Caching Proxy)会预先将资源的副本
       (缓存)保存在代理服务器上。
     透明代理:
       转发请求或响应时,不对报文做任何加工的代理类型被称为透明代
       理( Transparent Proxy)。反之,对报文内容进行加工的代理被称为
       非透明代理。
    

    2.网关:网关是转发其他服务器通信数据的服务器,接收从客户端发送来的请求时,它就像自己拥有资源的源服务器一样对请求进行处理。有
    时客户端可能都不会察觉,自己的通信目标是一个网关。

     网关的工作机制和代理十分相似。而网关能使通信线路上的服务器
     提供非HTTP协议服务。
     利用网关能提高通信的安全性,因为可以在客户端与网关之间的通
     信线路上加密以确保连接的安全。比如,网关可以连接数据库,使用
     SQL语句查询数据。另外,在Web购物网站上进行信用卡结算时,网
     关可以和信用卡结算系统联动。
    

    3.隧道: 是在相隔甚远的客户端和服务器两者之间进行中转,并保持双
    方通信连接的应用程序。

     	隧道可按要求建立起一条与其他服务器的通信线路,届时使用SSL
     等加密手段进行通信。隧道的目的是确保客户端能与服务器进行安全的
     通信。
     	隧道本身不会去解析HTTP请求。也就是说,请求保持原样中转给
     之后的服务器。隧道会在通信双方断开连接时结束。
    
  3. 缓存:客户端缓存和缓存服务器缓存

六、HTTP首部和HTTPS

HTTP首部字段是由首部字段名和字段值构成的,中间用冒号“ :”
分隔。
若HTTP首部字段重复了会如何? 未明确规定,不同浏览器有不同逻辑

  1. 4种HTTP首部字段类型
    通用首部字段
    请求首部字段
    响应首部字段
    实体首部字段
  2. HTTP缺点
    在这里插入图片描述
  3. HTTP+SSL=HTTP+加密+认证+完整性保护=HTTPS
    HTTPS缺点:
    1. 因为与纯文本通信相比,加密通信会消耗更多的
      CPU及内存资源。如果每次通信都加密,会消耗相当多的资源,平摊到
      台计算机上时,能够处理的请求数量必定也会随之减少。
    2. 购买证书要钱:大概一年600¥

七、身份认证

在这里插入图片描述

基于表单的认证方法并不是在HTTP协议中定义的。

但是基于使用便利和安全问题,认证多为基于表单认证:
基于表单认证的标准规范尚未有定论,一般会使用 Cookie来管理
Session(会话)

八、基于HTTP的功能追加协议

  1. SPDY:
    其开发目标旨在解决HTTP的性能瓶颈,缩短Web页面的加载时间(50%)。
    SPDY没有完全改写HTTP协议,而是在TCP/IP的应用层与运输层之间通过新加会话层的形式运作。同时,考虑到安全性问题,SPDY规定通信中使用SSL。

  2. 使用浏览器进行全双工通信的 Websocket

  3. HTTP/2.0

  4. Web服务器管理文件的 WEBDAV

九、WEB的攻击技术

  1. 跨站脚本攻击
    跨站脚本攻击( Cross-site Scripting,XSS)是指通过存在安全漏洞
    的Web网站注册用户的浏览器内运行非法的HTML标签或 Javascript
    进行的一种攻击。动态创建的HTML部分有可能隐藏着安全漏洞。就
  2. SQL注入攻击
  3. OS命令攻击
    OS命令注入攻击( OS Command Injection)是指通过Web应用,执行非法的操作系统命令达到攻击的目的。只要在能调用 Shell P函数的地方就有存在被攻击的风险。.
  4. HTTP首部注入攻击
  5. 邮件首部注入攻击
  6. 目录遍历攻击
  7. 远程文件包含漏洞
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值