- 作者: 雪山肥鱼
- 时间:20211031 19:10
- 目的: HTTP 概述
# HTTP - Internet多媒体信使
# Web 客户端和服务器
# 资源
## 媒体类资源 MIME 简介
## URI
## URL
# 事务
## 方法
## 状态码
# 报文
# 连接
# web 结构组件
## 代理
## 缓存
## 网关
## 隧道
## Agent 代理
1.1 HTTP -- 因特网得多媒体信使
HTTP 使用得是 可靠的数据传输协议
1.2 Web 客户端和服务器
web服务器,即 http 协议服务器。客户端发http请求,服务器将数据塞到http响应中
echo.png
浏览器会向服务器发送一条http请求。服务器会去寻找锁期望的对象(/index.html),如果成功,就将对象,对象类型,对象长度以及其他一些信息放在http响应中发送给客户端。
1.3 资源
资源是存储在服务器中的分为:
- 静态资源:电影,word,图片等。
-
动态资源: 根据request者的身份,所请求的信息,或者每天不同的时段来产生内容。
image.png
媒体类资源
网络中有上千中数据类型。http仔细的给每种类型都打上了MIME类型标签。
image.pngMIME: Multipurpose Internet Mail Extension.
当Web 浏览器从服务器中取回一个对象时,会去查看相关的MIME类型,查看http是否知道如何处理。
MIME结构:
Content-type: image/jpeg
Image: 主要的对象类型
jpeg: 子类型。
工作中接触的比较多的MIME 类型为:application/json
应用程序特有的内容格式,类型为 json
URI
服务器资源都有一个名字。被称为 URI: Uniform Resource Identifier.
资源路径。
URL
URL 即 URI
特定资源,特定位置。
- 方案/协议类型 scheme : http
- 地址
3/ 资源路径
1.4 事务
指客户端通过HTTP 与 Web 服务器进行资源处理的过程。
image.png
1.4.1 方法
- get
让服务器向客户端发送资源 - put
将来自客户端的数据存储到一个服务器资源路径中 - delete
删除资源 - post
将客户端数据发送到一个服务器网关应用程序中 - head
http首部
1.4.2 状态码
每条http响应报文返回时都会携带一个状态码。表明是否发送成功等。
状态码.png
1.4.3 Web页面中可以包含多个对象
应用程序完成一项任务时,通常会发布多个http事务。比如 浏览器发布一些列的http事务获取并现实web页面。
浏览器会先通过一个事务获取html框架,再发送一个事务去要图片,java小程序等。这些资源可能都不在同一台服务器上。
image.png
1.5 报文
http 报文都是纯文本,而不是二进制代码。
- 起始行
- 首部字段
- 主题
- 请求报文
get 目标地址,资源为 /tool.html. http 版本 1.0 - 回报
版本,状态码,content length 说明相应主体的长度。
content type 说明了文档的MIME 类型为 text/html
返回的是一个 html网页
1.6 连接
http 是可靠连接,建立在tcp/ip 基础上。
example.png
这是刚才的例子
流程
- 用户输入 url
- 获取主机名
- 向dns要地址
- 端口号默认80
- 建立连接
- 发送get请求
- 返回http相应
- 断开连接
1.8 web 结构组件
- 代理
位于客户端和服务器之间的http中间实体 - 缓存
http的仓库,常用页面的副本可以保存在离客户端更近的地方。 - 网关
连接其他应用程序特殊的web 服务器 - 隧道
对http 通信报文进行盲文转发的特殊代理 - agent 代理
浏览器
1.8.1 代理
image.png
代理接收客户端所有http请求。并将这些请求转发给服务器。
出于安全考虑,通常会将代理作为转发所有web流量的可信任中间节点使用,代理还可以对请求和相应进行过滤。屏蔽一些嘿嘿嘿网站
1.8.2 缓存
缓存也是代理缓存。是一种特殊的http代理服务器。可以将经过代理传送的常用文档赋值保存下来。下一次请求,直接访问私有副本即可。
image.png
1.8.3 网关
网关是一种特殊的服务器,作为其他服务器中间实体使用。通常将http流量转换成其他协议。网关接收请求时,就好像自己是资源的源端服务器一样。客户端并不知道自己正在与一个网关进行通信。
如:
image.png
通过http/ftp 网关,将http 转换为ftp
1.8.4 隧道
隧道是建立起来之后,就会在两条连接之间对原始数据进行盲转发的http应用程序。http隧道通常用在一条活多条http连接上,转发非http数据。转发时不会窥探数据。
隧道.png
http/ssl 隧道收到一条http请求,要求建立一条道目的地址和端口的输出连接,然后在http信道上通过隧道传输加密的ssl流量。这样就可以将其盲转发道目的服务器上
1.8.5 Agent 代理
web 浏览器是一种http agent 代理。
还有一些自己会在web上闲逛的自动用户Agent 代理,可以在无人监视的情况下,发布http事务,获取内容。网络爬虫。
image.png
网友评论