阅读图解http一书学习笔记

http 学习

网络基础

  • IP(Internet Protocol) 网际协议
  • TCP(Transmission Control Protocol) 传输控制协议,面向链接的,可靠的协议
  • UDP(User Datagram Protocol) 用户数据报协议
  • URI(Uniform Resource Identifier) 统一资源定位符
  • DNS(Domain Name System) 提供域名与IP地址之间的解析
  • 网络分层协议(应用层、传输层、网络层、链路层、物理层)

http请求支持的方法

  • GET
  • POST
  • PUT
  • HEAD 获取报文首部
  • DELETE

编码提高传输速率

  • 压缩传输的内容编码
    • gzip(GNU zip)
    • compress(UNIX系统标准压缩)
    • deflate(zlib)
    • identity(identity)
  • 分割发送的分块传输编码

http状态码

  • 2XX 成功web

    • 200 OK
    • 204 No Content 请求处理成功但没资源返回
    • 206 Partial Content 对资源的某一部分请求
  • 3XX 重定向sql

    • 301 Moved Permanently 资源的URI已更新,永久性重定向
    • 302 Found 资源临时重定向
    • 303 See Other 资源URI已更新,303状态码明确表示客户端应该采用GET方法获取资源
    • 304 Not Modified 服务端资源未改变,能够直接使用能够的未过时的缓存
  • 4XX 客户端错误shell

    • 401 Bad Request 客户端错误,通常是参数格式错误
    • 401 Unauthorized 没有权限
    • 403 Forbidden 禁止访问
    • 404 Not Found 资源未找到
  • 5XX 服务端错误浏览器

    • 500 Internal Server Error
    • 502 Bad Gateway 网关或代理服务器错误
    • 503 Service Unavaliable 服务端没法处理请求

代理

接受客户端请求转发给服务端,利用缓存技术减小网络带宽的流量,组织内部针对特定网站的访问控制,以获取访问日志为主要目的缓存

  • 缓存代理 预先将资源的副本保存在代理服务器上
  • 透明代理 不对报文作任何加工

HTTP首部

  • 通用首部安全

    • Cache-Control 指定缓存机制
    • Connection 管理持久链接
    • Date http报文建立的日期和时间
    • Pragma: === Cache-Control
    • Transfer-Encoding 传输报文主体时采用的编码方式,仅对分块传输编码有效
  • 请求首部服务器

    • Accept 通知服务器用户代理可以处理的媒体类型及媒体类型的相对优先级
    • Accept-Charset 通知服务器用户代理支持的字符集以及字符集的优先顺序
    • Accept-Encoding 告知服务器用户代理支持的内容编码及内容编码的优先顺序(gzip, compress, deflate)
    • Accept-Language 告知服务器用户可以处理的天然语言以及优先级
    • Authorization 告知服务器用户代理的认证信息
    • Expect
    • Form
    • If-Match
    • If-Modified-Since
    • If-Range
    • If-Unmodified-Since
    • Max-Forwords 指定通过服务器的最大数目
    • Proxy-Authorization
    • Range 请求的范围
    • Referer 请求原始资源的URL(网站的url)
    • TE 客户端能处理的编码方式以及相对优先级
    • User-Agent 建立请求的浏览器和代理的名称
  • 响应首部cookie

    • Accept-Ranges
    • Age 源服务器在多久前建立了资源
    • ETag
    • Loation
    • Proxy-Authenticate
    • Retry-After 告知客户端多久以后再次发送请求
    • Server 服务器应用程序的信息
    • Vary 对缓存进行控制
  • 实体首部字段网络

    • Allow 通知客户端请求资源指定的方法
    • Content-Ecoding 实体主体的编码方式
    • Content-Language 实体主体使用的天然语言
    • Content-Length 实体主体部分的大小
    • Content-Location 报文主体部分相对应的URI
    • Content-MD5
    • Content-range 告知客户端做为相应返回的实体的哪一个部分符合范围请求
    • Content-Type 实体主体内对象的媒体类型
    • Expires 资源失效日期
    • Last-Modified 资源最终修改时间
  • 为Cookie服务的首部字段session

    • Set-Cookie 开始状态管理所使用的cookie信息
    • Cookie 保存在用户本地,服务器接受到的cookie信息

HTTPS

  • HTTP缺点

    • 通讯使用明文(不加密),内容可能会被窃听
    • 不验证通讯方的身份,所以有可能遭遇假装
    • 没法证实报文的完整性,因此有可能遭遇假装
    • 没法证实报文的完整性,因此有可能已遭篡改
  • HTTPS(HTTP secure)

    • HTTP
    • SSL加密
    • 认证
    • 完整性保护
  • HTTPS缺点

    • 通讯慢 除了http请求还行进行ssl通讯,总体处理通讯量增长
    • 大量消耗cpu和内存资源,致使处理速度变慢, 对报文加解密消耗资源

用户身份验证

  • BASIC认证(不安全)

    • 客户端发生请求
    • 返回状态码401告知客户端须要进行认证
    • 用户ID和密码以Base64方式编码发送
    • 成功后返回状态码200,失败返回状态码401
  • DIGEST认证(不安全)

    • 认证要求
    • 服务端发送临时质询码,和告知须要认证的状态码401
    • 发送摘要以及由质询码计算出的响应码
    • 认证成功返回状态码200,失败则再次发送状态码401
  • SSL认证

    • 收到须要认证资源请求,服务器发送报文要求客户端提供证书
    • 客户端发送证书
    • 服务器验证证书经过后,客户端可领取证书内客户端的公钥,而后开始HttPS加密通讯
  • 基于表单认证(Session管理及Cookie应用)

    • 客户端发送用户名密码
    • 服务端向用户发放session ID,
    • 客户端发送含session id的cookie
    • 服务端经过session id来断定对方的真实用户

web攻击技术(web安全)

  • 因输出值转义不彻底引起的安全漏洞

    • 跨站脚本攻击
      • 利用虚假页面获取用户表单信息
    • sql注入攻击
      • 输入框中填写非法的sql语句
    • os命令注入攻击
      • 在能调用shell函数的地方输入非法os命令
    • http首部注入攻击
      • 在响应首部字段内插入换行,添加任意响应首部或主题的一种攻击
    • 邮件首部注入攻击
      • 向邮件内部添加非法内容的攻击
    • 目录遍历攻击
      • 对本无心对外公开的目录,经过非法截断期路径后,达成访问目的的攻击(可以使用../等相对路径定位到绝对路径)
    • 远程文件包含漏洞
      • 当部分脚本内容须要从其余文件读入时,攻击者利用指定外部服务器的url充当依赖文件,让脚本读取以后运行任意脚本
  • 设计上的缺陷引起的安全漏洞

    • 强制浏览
    • 不正确的错误消息处理
      • web应用错误信息包含对攻击者有用的信息
    • 开发重定向
      • 经过修改重定向地址跳转到恶意的地址
  • 因会话管理疏忽引起的安全漏洞

    • 会话劫持
      • 拿到用户的ID,伪形成用户,达到攻击的目的
    • 会话固定攻击
      • 强制用户使用攻击者指定的会话ID
    • 跨站点请求伪造
  • 其余安全漏洞

    • 密码破解
    • 点击劫持
    • dos攻击
    • 后面程序
相关文章
相关标签/搜索