《图解HTTP》读书笔记

一、第一章 了解Web及网络基础

  1.HTTP历史:

    1)HTTP/0.9:HTTP于1990问世,当时标准未被正式建立,所以HTTP/1.0之前的版本,统称为HTTP/0.9

    2)HTTP/1.0:1996年5月公布,记录于RFC1945,沿用至今

    3)HTTP/1.1:1997年1月公布,记录于RFC2616,目前主流版本

    4)HTTP/2.0:正在制定中

    ps.RFC(Request for Comments),征求修改意见,制定HTTP协议技术标准的文档,不含Cooike

  2.TCP/IP协议族:互联网连接协议(protocol),子集有:HTTP、TCP、IP、FTP、PPPoE、FTP等

  3.TCP/IP四层模型:

    1)应用层:FTP、DNS、HTTP

    2)传输层:TCP、UDP

    3)网络层:IP

    4)链路层:操作系统、硬件驱动、网卡、光纤、硬件部分

    PS.经过每层时会打上该层的首部信息,接收时去除

  4.ARP协议:HTTP在网络传输时,通过ARP协议就可以解析目标地址,但是过程无法全面掌握,通过路由选择。

  5.三次握手:发送SYN的flag->收到请求后回传一个带有SYN/ACK的flag->最后回传一个带有ACK的flag

  6.URL是URI的子集,URI包含:Uniform(如http:或ftp:)、Resource(可标示的任何东西)、Identifier(标识符)

 

二、简单的HTTP协议

  1.HTTP中可以使用的方法:GET、POST、PUT、HEAD、DELETE、OPTIONS、TRACE、CONNECT

  2.持久连接:HTTP/1.1中,所有的连接默认都是持久连接

  3.使用Cooike的状态管理

 

三、HTTP报文内的HTTP信息

  1.HTTP报文本身是由多行(用CR+LF作换行符\r\n)

  2.HTTP首部内容:请求行、状态行、首部字段、其它

  3.报文的内容编码格式有:gzip(GUN zip)、compress(UNIX系统的标准压缩)、deflate(zlib)、identity(不进行编码)

  4.分割发送的分块传输编码:用于把实体主体分成多块发送,可以在通信时使用某种传输编码(Transfer Coding)

  5.多部分对象集合(Multipart):Content-Type:multipart/form-data[multipart/form-byteranges],使用boundarg字符串来划分每个部分(参见P47、P48)

  6.获取部分内容的范围请求:Range:bytes=5001-10000,响应返回206 Partical Content的响应报文

  7.内容协商Content Negotiation:Accept、Accept-Charset、Accept-Encoding、Accept-Language、Content-Language

 

四、返回结果的HTTP状态码

  1.类型简介:

    1XX:信息性状态码,接受的请求正在处理

    2XX:成功状态码

      204:No Content,请求处理成功,但是没有资源可返回

      206:Partial Content,客户端进行范围请求,服务器成功执行了这部分的GET请求

    3XX:重定向状态码

      301:Move Permanently:URL已更新(永久性的),需要进行书签引用的变更

      302:Found,和301类似,但是是临时性的,不需要对书签进行更新

      303:See Other,使用GET方法重定向到新的URL上。即使是POST方法访问,也只使用GET方法来做重定向,是和302方法的区别

      304:Not Modified,发送附带条件的请求时,如果发生服务器未满足条件的情况,则返回此状态

      307:Temporary Redirect:和302类似,但是不会从POST变成GET

    4XX:客户端错误状态码,服务器端无法处理请求

      400:报文存在语法错误,服务器无法理解。浏览器会像对待200 OK一样对待该状态码

      401:Unauthorized,需要认证

      403:Forbidden,不允许访问资源,可以在返回主体里描述原因

      404:Not Found,服务器资源未找到,也可以在服务器拒绝请求且不想说明原因时使用

    5XX:服务器错误状态码,服务器处理请求出错

      500: Internal Server Error:服务器在执行请求时出错了

      503:Service  Unavailable:服务器超负荷或者在进行停机维护

 

五、与HTTP协作的WEB服务器

  1.通信数据转发程序:

    1)代理:缓存代理、透明代理(非透明代理)

    2)网关:和代理类似,但是可以提供非HTTP协议服务器,如连接数据库、信用卡结算系统等

    3)隧道:按要求建立一条与其他服务器的通信线路,使用SSL等加密手段

 

六、HTTP首部

  1.HTTP首部字段类型:(书中有详细说明)

    1)通用首部字段

 

    2)请求首部字段

    3)响应首部字段

    4)实体首部字段

    5)非HTTP/1.1首部字段:不在RFC2616中,而是在RFC4229中的47种首部字段,包括Cookie等

 

七、确保Web安全的HTTPS

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

 

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

  1.HTTP使用的认证方式:

    1)BASIC认证(基本认证)

    2)DIGEST认证(摘要认证)

    3)SSL客户端认证

    4)FormBase认证(基于表单认证)

  2.通常,一种安全的保存密码的方式是,先给密码加盐,再使用散列(hash)函数计算出散列值后保存

 

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

  1.为了消除HTTP的瓶颈,出现的解决方案:Ajax、Comet、SPDY(开发中)、WebSocket(HTML5)、HTTP/2.0(制定中)

  2.WebDAV:是一个可对Web服务器上的内容直接进行文件复制、编辑等操作的分布式文件系统。它作为HTTP/1.1的协议定义在RFC4918中

 

十、构建Web内容的技术(略)

 

十一、Web的攻击技术

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

    1)跨站脚本攻击(XSS)

    2)SQL注入攻击

    3)OS命令注入攻击

    4)HTTP首部注入攻击

    5)邮件首部注入攻击

    6)目录遍历攻击

    7)远程文件包含漏洞

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

    1)强制浏览

    2)不正确的错误信息处理

    3)开放重定向

  3.因会发管理疏忽引发的安全漏洞

    1)会话劫持

    2) 会话固定攻击  

    3)跨站点请求伪造(CSRF)

  4.其它安全漏洞

    1)密码破解

    2)点击劫持

    3)DoS攻击

    4)后门程序

    

    

      

 

posted @ 2015-09-30 18:02  系统攻城狮  阅读(692)  评论(0编辑  收藏  举报