图解HTTP(1)

第一章 了解Web及网络基础

HTTP

  1. HTTP(Hyper-Text Transfer Protocol): 超文本传输协议;
  2. 版本: 0.9,1.0,1.1,2.0;

WWW构建技术

  1. SGML标准通用标记语言(HTML)
  2. 文档传输协议(HTTP)
  3. 指定文档所在地址的URL(统一资源定位符)

TCP/IP

  1. 应用层(DNS: domain->IP) -> 传输层(TCP: 三次握手) -> 网络层(IP: ARP: IP->MAC) -> 数据链路层(MAC)

URI(统一资源标识符)与URL

  1. URI: 用字符串标识某一互联网资源
  2. URL: 强调位置
  3. URI > URL

第二章 简单的HTTP协议

HTTP要点

  1. HTTP是一种不保存状态的协议,意思是就当次有效,不持久化处理;HTTP/1.1引入keep-alive避免重复链接,引入Cookie技术进行状态管理

HTTP方法(8种)

  1. GET: 获取资源,文本直接返回;CGI就执行后返回
  2. POST: 传输实体主体
  3. PUT: 传输文件(无验证机制,安全性问题),要配合验证机制和REST
  4. HEAD: 类GET,只是不返回报文主体部分,用于确认URI有效和更新日期
  5. DELETE: 删文件,同PUT存在问题,解决和PUT一样
  6. OPTIONS: 询问支持的方法
  7. TRACE: 追踪路径,客户端通过TRACE可查发送出去的请求是怎样被加工修改/篡改的,易引发XST(Cross-Site Tracing,跨站追踪)攻击,基本不用
  8. CONNECT: 隧道协议连接代理,进行TCP通信,主要使用SSL(Secure Sockets Layer,安全套接层)和TLS(Transport Layer Security,传输层安全)加密后经网络隧道传输

持久连接

持久连接: HTTP/1.1默认所有连接持久化

管线化

管线化: 不用等待响应亦可直接发送下一个请求,同时并行发送

Cookie状态管理

  1. 发请求,服务器生成Cookie返回,响应报文
  2. 二次请求自动添加Cookie发送

第三章 HTTP报文内的HTTP信息

  1. HTTP报文本身是由多行(CR+LF作换行符)数据构成的字符串文本,分为报文首部和报文主体,中间有空行,不一定有报文主体
  2. 首部: 请求行/状态行,首部字段,其他
  3. 编码提升传输速率

报文主体和实体主体差异在于实体经过编码变为报文

  1. 压缩传输的内容编码(GNUzip=gzip,compress,deflate(zlib),identity)
  2. 分块传输编码:每一块都会用16进制标记块的大小,而最后一块使用"0(CR+LF)"来标记
  3. 发送多种数据的多部分对象集合

MIME(多用途因特网邮件扩展):允许邮件处理文本,图片,视频等不同类型的数据.
Content-Type: multipart/form-data(表单文件上传)
multipart/byteranges 状态码206,响应报文含多个范围

  1. Range: bytes=范围 Content-Type: multipart/byteranges
  2. 内容协商

首部字段: Accept,Accept-Charset,Accept-Encoding,Accept-Language,Content-Language
内容协商技术类型:

  1. 服务器驱动协商
  2. 客户端驱动协商
  3. 透明协商: 服务器驱动 + 客户端驱动

第四章 返回结果的HTTP状态码

响应类别

  1. 1XX - Informational - 信息性状态码 - 接收的请求正在处理
  2. 2XX - Success - 成功状态码 - 请求正常处理完毕
  3. 3XX - Redirection - 重定向状态码 - 需要进行附加操作以完成请求
  4. 4XX - Client Error - 客户端错误 - 服务器无法处理请求
  5. 5XX - Server Error - 服务器错误状态码 - 服务器处理请求错误

经常使用的14种状态码

  1. 2XX 成功
  1. 200 OK
  2. 204 No Content 返回响应报文不合实体的主体部分
  3. 206 Partial Content 范围请求Content-Range
  1. 3XX 重定向: 表明浏览器需要执行某些特殊处理以正确处理请求
  1. 301 Moved Permanently 永久性重定向
  2. 302 Found 请求的资源已被分配了新的URI,希望用户(本次)能使用新的URI访问
  3. 303 See Other 由于请求的对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源
  4. 304 Not Modified 服务端资源未改变,可直接使用客户端未过期的缓存
  5. 307 Temporary Redirect 临时重定向,和302类似,会遵照浏览器标准,不会从POST变成GET
  1. 4XX 客户端错误
  1. 400 Bad Request
  2. 401 Unauthorized 发送的请求需有HTTP认证,初次接收到401响应会弹出认证用的对话窗口
  3. 403 Forbidden 不允许访问,请求被服务器拒绝
  4. 404 Not Found 服务器上没有请求资源
  1. 5XX 服务器错误
  1. 500 Internal Server Error 服务器端执行请求出错
  2. 503 Service Unavailable 服务器超负载或在维护

第五章 与HTTP协作的Web服务器

  1. 通信数据转发程序: 代理(中间人),网关(处理请求非HTTP协议),隧道(中转加密)

你可能感兴趣的:(图解HTTP(1))