第一章 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机器人
