zoukankan      html  css  js  c++  java
  • 《图解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作换行符 )

      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)后门程序

        

        

          

  • 相关阅读:
    浅谈HashMap的内部实现
    浅谈Java的集合体系
    如何通过注解Bean类来封装SQL插入语句
    谈一谈垃圾回收器
    万物皆对象
    关于枚举
    Servlet向客户端发送中文数据的编码情况
    "流"派家族,一脉相承
    个人简历用HTML编写
    get和post的区别
  • 原文地址:https://www.cnblogs.com/xujanus/p/4849861.html
Copyright © 2011-2022 走看看