• 网络基础知识02-HTTP协议


    参考书:《图解HTTP协议》

    HTTP协议

    http是不保存状态的协议,要通过Cookie进行状态管理。

    报文结构

    请求行:请求方式 URI 协议版本

    响应行: 协议版本 状态码 状态码的原因短句

    报文传输,提升传输速率

    1.报文主体压缩

    • 常见的内容编码格式:
      • gzip
      • compress
      • defalte
      • identity

    2.报文主题切割

         将实体主体的功能进行切割为分块

    HTTP协议响应码

    类别 原因短语
    1XX 信息性状态码
    2XX 成功状态码
    3XX 重定向状态码
    4XX 客户端错误状态码
    5XX 服务器错误状态码

    响应的几种状态码

    2XX

    • 204 请求处理成功,但是没有资源返回

    • 206 表示多重范围请求,例如图片总共7000字节,分成两部分请求1-4000,4000-7000

    #首部字段
    Range: bytes=1~4000
    

    3XX

    • 301 永久重定向。
    # 漏了最后的斜杠
    http://example.com/sample
    
    • 302 临时重定向

    • 303 明确返回客户端应该采用那种请求方式

    4XX 客户端请求

    • 400 请求报文中存在语法错误。

    • 401 表示需要认证

    • 403 服务器不允许访问,一般是请求方式不同造成的,是否POST请求用成了GET

    • 404 没找到资源

    5XX 服务器错误

    • 500 系统出现bug

    • 503 表示服务器暂时处于超负载或者进行停机维护中。

    HTTP 通用首部字段

    • Cach-Controller

    -- 缓存请求指令

    no-cache 指令的目的是为了防止从缓存中返回过期的资源,表示不会接收返回的缓存资源。
    
    max-age 表示资源保存为缓存的最长时间
    
    

    -- 缓存响应指令

    # 缓存指令
    
    public : 表示其他用户可利用缓存
    
    
    private :表示响应特定的用户作为对象
    
    
    • Date 表明创建HTTP报文的日期和时间

    • Transfer-Encoding 表示传输编码方式

    • via 为了追踪客户端与服务器之间的请求和响应报文的传输路径。

    • Warning 告知用户一些与缓存相关的的问题警告。

    • Upgrade 表示指定完全不同的通信协议

    请求和响应首部字段

    请求首部字段

    • Accept 表示接收的资源

      • 图片 :image/jpeg;image.gif

      • 文本文件: text/html;text/plain

      • 视频文件: video/qicktime

      • 应用程序使用的二进制文件 application/octet-stream,application/zip

    Accept:tex/html;q=0.3,text/html
    
    • Accepti-Charset 通知服务器用户代理的字符集及字符集的相对优先顺序。q表示权重

    • Accept-Encoding 表示用户代理支持的内容编码,gzip,defalte等

    • Accept-Language 服务器代理处理的语言集

    • Authorization 用户代理的认证信息

    • From 用来告知服务器代理的用户的电子邮件地址

    • Host 请求资源所在的互联网主机名和端口号

    • Max-Forwards 表示经过的请求转发

    • Referer 请求URI是从那个Web页面发起的。

      • 一般伪跨站请求就是判断这个字段,是否与应该请求的URI是否一直.

    请求首部字段

    • Accept-Range 告知客户端服务器能处理的范围请求

    • Location 用域响应接收方请求URI位置不同的资源。 一般是重定向的URI

    实体首部字段

        包含请求保温盒响应报文实体部分所使用的首部。

    • Allow 通知客户端支持的HTTP方法
    Allow: Get , HEAD
    
    • Content-Encoding 告诉客户端,服务器对实体的主题部分选择的内部编码方式
    Content-Encoding: gzip
    
    • Content-Length 实体部分的大小
    Content-Length: 15000
    
    • Content-Type 表示实体对象的媒体类型

    • Expires 资源失效日期

    • Last-Modified 指明资源最终修改的时间

    • Cookie

    字段名称 说明 首部类型
    Set-Cookie 开始状态管理所使用的Cookie信息 响应首部字段
    Cookie 服务器接收的Cookie信息 请求首部字段
    Set-Cookie: name=value;secure// secure限制Web页面仅在HTTPS安全连接时,才可以发送Cookie
    
    Set-Cookie: name=value;HttpOnly 防止跨站脚本攻击XSS
    
    Cookie: status=enable
    

    HTTPS

    HTTP的缺点

    • 通信使用明文,内容可能被窃听

      • TCP/IP 是可能被窃听的网络
    • 不验证通信放身份,可能遭遇伪装

      • 任何人都能发起请求,造成海量请求的DOS(Denies of Service)攻击。
    • 无法证明报名的完整性,可能被篡改

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

    • HTTPS 并不是一种新的协议

      • HTTP 是 直接和TCP进行通信的

      • HTTPS 是 HTTP 通过SSL (Secure Socket Layer) 和 TLS (Transport Layer Security) 协议代替和TCP进行通信。

    • SSL 协议采用公开密钥加密 的方式

      • 使用两把密钥进行加密,一把私钥,一把公钥

      • 相对HTTP,HTTPS的速度比较慢。SSL通信比较慢, 并且会销号大量的CPU和内存;

    • HTTPS 采用共享密钥加密和公开密钥加密两者并用的混合加密机制

      • 公开密钥需要认证,

    • HTTPS 的安全通信机制

    常见的WEB攻击技术及漏洞

    WEB攻击技术

    • 跨站脚本攻击

      非法的标签或者javascript脚本进行攻击。是预先设计好的。

      例如:

    # 原始的表单
    <btn click="login()" >
    
    # 改变点击的事件
    <btn click="login(),other()" >
    
    <script>
    other(){
    //做一些其他的操作,获取登录信息
    var username = document.getElementById('username');
    var password = document.getElementById('password'); 
    }
    </script>
    
    # 获取页面信息
    <script src="......"/>
    <script>
    查询账户的钱
    
    或者
    获取cookie数据
    var content = escape(document.cookie);
    </script>
    
    
    
    • SQL注入攻击
    # 正常的查询SQL
    select * from order where username='zhangsan' and flag = 1
    
    #传入错误参数  zhangsan' --
    select * from order where username='zhangsan'--' and flag = 1
    SQL语句的-- 表示注解的意思
    
    
    • HTTP首部注入攻击:向首部主体添加内容

      • 重置Location字段,让访问进行重定向

      • 修改cookie数据

      • 响应截断的方式进行攻击

    # 对响应进行截断
    %0D%0A%0D%0A是两个换行的分隔符号,
    
    对响应数据进行修改Set-Cookie=123;%0D%0A%0D%0A<html><a>付款连接</a></html>
    
    
    
    • 文件遍历攻击

    漏洞

    • 会话劫持

    • 会话固定攻击

    • 跨站点伪造请求

    • 密码破解

      • 通过网络试错

        • 穷举法
        • 字典攻法
      • 侵入系统获取加密算法

    • DOS 攻击,海量访问攻击。会让服务器瘫痪

  • 相关阅读:
    20170519
    20170515
    20170511
    20170509
    20170505
    使用 FirewallD 构建动态防火墙
    Elasticsearch 5.2.1Cluster 搭建
    elk,centos7,filebeat,elasticsearch-head详细安装步骤
    elk,centos7,filebeat,elasticsearch-head集成搭建
    memcached
  • 原文地址:https://www.cnblogs.com/perferect/p/13381489.html
Copyright © 2020-2023  润新知