📚《HTTP权威指南》——第一章 HTTP 概述

158 阅读3分钟

第一章 HTTP 概述

第一章总结:

  • 浏览器资源来自哪里?媒体类型有哪些?
  • url?
  • http 如何工作?
  • http 报文格式?
  • tcp 传输过程(用户输入请求地址后的过程?)
  • http 协议版本
  • http 一些组件应用

详细总结:

web 客户端与服务如何通信?

- 遵循 http 协议,web 浏览器向服务器请求 http 对象

web 内容资源来自哪里?有哪些媒体类型?

- 存储在 web 服务器上,可以提供 web 内容的都是 web 资源
- MIME type:标记对象类型的文本标记,决定如何处理
    - html:text/html
    - gif:image/gif
    - ppt:application/vnd.ms-powerpoint

URI?URL?URN?

- URI;web 服务器资源名字,有两种形式:URL、URN
    - URL:协议 + 服务器地址 + 资源路径
    - URN:唯一名称,与资源位置无关,可以将资源搬移

web 事务如何工作?

- HTTP 方法
    - get:从服务器向客户端发送命名资源
    - put:将来自客户端的数据储存到一个命名的服务器资源中
    - delete:从服务器中删除资源
    - post:将客户端数据发送到服务器网关应用程序
    - head:只发送命名资源相应中的http首部
- 状态码
    - 200:ok。文档正确返回
    - 302:redirect。重定向,到其他地方获取资源
    - 404:not found。无法找到资源
- 页面可以包含多个对象
    - 可以发布多个http事务,一个网页有多个资源

http 通信用的报文格式?

- 请求报文、响应报文
- 起始行
- 首部字段
- 主体 

底层 TCP 网络传输

- 连接、ip、端口号
    - 没有数字形式的ip地址是域名(主机名),通过 DNS(域名服务)将主机名转换为 ip 地址
- 请求过程
    - 用户输入url,获取主机名
    - 用 DNS 解析转换为服务器 ip
    - 从 url 获取端口号(没有默认80)
    - 浏览器建立一条与服务器的 tcp 连接
    - 向服务器发送 http 请求报文
    - 向浏览器发送 http 响应报文
    - 关闭连接、展示资源
- Telnet
    - 远程登录协议,模拟 http 客户端
- netcat
    - 可以方便的操纵基于 UDP、TCP 的流量(包括http),还可以写脚本
    - 一般我们使用netcat做的最多的事情为以下三种:  
        1、扫描指定IP端口情况  
        2、端口转发数据(重点)  
        3、提交自定义数据包  

不同 http 协议变体

- http 0.9
    - 只支持 get 方法,严重的设计缺陷,只为获取最简单 html 对象,不支持多媒体内容的 mime 类型、http 首部、版本号
- http 1.0
    - 支持了多媒体对象处理、http 首部、版本号
- http 1.0+
    - 增加特性:keep-alive 连接、虚拟主机支持、代理连接
- http 1.1(当前使用的 http 版本)
    - 矫正 http 设计中的结构缺陷、明确予以、引入性能优化、删除不好的特性
- http NG(2.0)
    - 后面终止研究没有推广

因特网安装的大量 http 架构组件中的一部分

- 代理
    - 接受请求并转发给服务器,对请求和响应进行过滤(如病毒检测、对未成年屏蔽内容)
- 缓存
    - web cache( web 缓存)
    - proxy cache(代理缓存)
- 网关(gateway)
    - 特殊的服务器,作为其他服务器中间的实体用,用于将 http 流量转换成其他的协议
- 隧道(tunnel)
    - 建立后在两连接间对原始数据进行盲转发,用于在一条或者多条 http 连接上转发非 http数据,转发时不会窥探数据
    - 常见用途:通过 http 连接承载加密的 SSL 流量,这样 ssl 流量可以穿过只允许 web 流量通过的防火墙
- agent 代理
    - 代表用户发起 http 请求,所有发布 web 请求的应用程序都是 http agent 代理,如:web 浏览器
    - 网络蜘蛛、web机器人

image.png