zoukankan      html  css  js  c++  java
  • 《图解HTTP》读书笔记

    一、了解Web及网络基础

    HTTP(HyperText Transfer Protocol,超文本传输协议)

    TCP/IP分层:应用层(通信的活动,FTP文件传输协议、DNS域名系统),传输层(提供数据传输,TCP传输控制协议、UDP用户数据报协议),网络层(用来处理数据包,IP网络协议),链路层(网络链接的硬件部分)

    TCP协议为了确保可靠性:三次握手,用TCP协议把数据包送出去以后,会向对方确认是否成功送达(发送端发送带SYN标志的数据包,接收端收到后回传带SYN/ACK标志的数据包,发送端再回传带ACK的数据包,握手结束)

    DNS协议:应用层,提供通过域名查找IP地址,或逆向从IP地址反查域名的服务

    URI是由某个协议方案表示的资源的定位标识符

    二、简单的HTTP协议

    HTTP方法:

      GET 获取资源

      POST 传输资源

      PUT 传输文件

      HEAD 获得报文首部

      DELETE 删除文件

      OPTIONS 询问支持的方法

      TRACE 追踪路径

      CONNECT 要求用随到协议连接代理

    持久连接:所有HTTP/1.1的连接默认都是持久连接

    管线化:同时并行发送多个请求

    Cookie:HTTP是无状态协议,Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态

    三、HTTP报文内的HTTP信息

    HTTP报文:用于HTTP协议交互的信息被称为HTTP报文,请求端的HTTP报文叫做请求报文,响应端的叫做响应报文

    报文由报文首部(请求行或状态行、首部字段(请求或响应首部字段、通用首部字段、实体首部字段、其他)、其他)和报文主体组成

    报文和实体的区别:报文是订单信息,实体是货物

    压缩传输的内容编码:gzip(GNU zip)、compress(UNIX系统的标准压缩)、deflate(zlib)、identity(不进行压缩)

    四、返回结果的HTTP状态码

     HTTP状态码:

      1XX Informational(信息性状态码) 接受的请求正在处理

      2XX Success(成功状态码) 请求正常处理完毕

      3XX Redirection(重定向状态码) 需要进行附加操作以完成请求

      4XX Client Error(客户端错误状态码) 服务器无法处理请求

      5XX Server Error(服务器错误状态码)服务器处理请求出错

    五、与HTTP协作的Web服务器

    通信数据转发程序:代理、网关、隧道

    六、HTTP首部

    通用首部字段:

      Cache-Control 控制缓存的行为

      Connection 逐跳首部、连接的管理

      Date 创建报文的日期时间

      Pragma 报文指令

      Trailer 报文末端的首部一览

      Transfer-Encoding 指定报文主体的传输编码方式

      Upgrade 升级为其他协议

      Via 代理服务器的相关信息

      Warning 错误通知

    请求首部字段:

      Accept 用户代理可处理的媒体类型

      Accept-Charset 优先的字符集

      Accept-Encoding 优先的内容编码

      Accept-Language 优先的语言(自然语言)

      Authorization Web认证信息

      Expect 期待服务器的特定行为

      From 用户的电子邮箱地址

      Host 请求资源所在服务器

      If-Match 比较实体标记(ETag)

      If-Modified-Since 比较资源的更新时间

      If-None-Match 比较实体标记(与If-Match相反)

      If-Range 资源未更新时发送实体Byte的范围请求

      If-Unmodified-Since 比较资源的更新时间(与If-Modified-Since相反)

      Max-Forwards 最大传输逐跳数

      Proxy-Authorization 代理服务器要求客户端的认证信息

      Range 实体的字节范围请求

      Referer 对请求中URI的原始获取方

      TE 传输编码的优先级

      User-Agent HTTP客户端程序的信息

    响应首部字段:

      Accept-Ranges 是否接受字节范围请求

      Age 推算资源创建经过时间

      ETage 资源的匹配信息

      Location 令客户端重定向至指定URI

      Proxy-Authenticate 代理服务器对客户端的认证信息

      Retry-After 对再次发起请求的时机要求

      Server HTTP服务器的安装信息

      Vary 代理服务器缓存的管理信息

      WWW-Authenticate 服务器对客户端的认证信息

    实体首部字段:

      Allow 资源可支持的HTTP方法

      Content-Encoding 实体主体适用的编码方式

      Content-Language 实体主体的自然语言

      Content-Length 实体主体的大小(单位:字节)

      Content-Location 替代对应资源的URI

      Content-MD5 实体主体的报文摘要

      Content-Range 实体主体的位置范围

      Content-Type 实体主体的媒体类型

      Expires 实体主体过期的日期类型

      Last-Modified 资源的最后修改日期

    七、确保Web安全的HTTPS

    八、确认访问用户身份的认证

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

    十、构建Web内容的技术

    十一、Web的攻击技术

    针对Web的攻击技术:

      HTTP不具备必要的安全功能

      在客户端即可篡改请求

      针对Web应用的攻击模式

    因输出值转义不完全引发的安全漏洞:

      跨站脚本攻击

      SQL注入攻击

      OS命令注入攻击

      HTTP首部注入攻击

      邮件首部注入攻击

      目录遍历攻击

      远程文件包含漏洞

    因设置或设计上的缺陷引发的安全漏洞:

      强制浏览

      不正确的错误消息处理

      开放重定向

    因会话管理疏忽引发的安全漏洞:

      会话劫持

      会话固定攻击

      跨站点请求伪造

    其他安全漏洞:

      密码破解

      点击劫持

      DoS攻击

      后门程序

  • 相关阅读:
    ckeditor 3.0.1使用
    也谈QQ表情弹出框的制作
    百度的模态弹出窗口
    day03 set集合,文件操作,字符编码以及函数式编程
    写在开始之前
    day07 类的进阶,socket编程初识
    day06 面向对象编程
    day02 Python 的模块,运算,数据类型以及方法
    day04 装饰器 迭代器&生成器 Json & pickle 数据序列化 内置函数
    day08 多线程socket 编程,tcp粘包处理
  • 原文地址:https://www.cnblogs.com/ctxsdhy/p/7672987.html
Copyright © 2011-2022 走看看