《图解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攻击
后门程序