[关闭]
@guoxs 2015-09-19T13:38:48.000000Z 字数 3043 阅读 2945

HTTP概述

HTTP


1、资源

Web 服务器是Web 资源(Web resource)的宿主。Web 资源是Web 内容的源头。最简单的Web 资源就是Web服务器文件系统中的静态文件,资源不一定非得是静态文件,还可以是根据需要生成内容的软件程序。

1.1 MIME 类型

MIME 类型(Multipurpose Internet Mail Extension):多用途因特网邮件扩展。为每种需要通过Web传输的对象打上标签,便于识别。

在报文中显示为:Content-type:image/jpeg
常见的MIME类型:

文件类型 MIME类型
HTML text/html
ASCII文档 text/plain
JPEG image/jpeg
GIF image/gif
QuickTime影片 video/quicktime
Powerpoint application/vnd.powerpoint

1.2 服务器资源名

URI:统一资源标识符(Uniform Resource Identifier),,在世界范围内唯一标识并定位信息资源。
URL:统一资源定位符,资源标识符最常见的形式。描述了一台特定服务器上某资源的特定位置。可以明确说明如何从一个精确、固定的位置获取资源。

http://scheme() 使HTTPwww.joeshardware.com/specials/sawblade.gif

现在,几乎所有的URI都是URL.
URN:统一资源名,作为特定内容的唯一名称使用
的,与目前的资源所在地无关。URN仍然处于试验阶段,还未大范围使用。

2、事务

一个简单的http事务:
http事务

2.1 方法

HTTP 支持几种不同的请求命令,这些命令被称为HTTP 方法(HTTP method)。这个方法会告诉服务器要执行什么动作(获取一个Web 页面、运行一个网关程序、删除一个文件等)。
一些常见的HTTP方法:

HTTP方法 描述
GET 从服务器向客户端发送命名资源
PUT 将来自客户端的数据存储到一个命名的服务器资源中去
DELETE 从服务器中删除命名资源
POST 将客户端数据发送到一个服务器网关应用程序
HEAD 仅发送命名资源响应中的HTTP 首部

2.2 状态码

每条HTTP 响应报文返回时都会携带一个状态码。状态码是一个三位数字的代码,告知客户端请求是否成功,或者是否需要采取其他动作。
一些常见的HTTP状态码:

HTTP状态 描述
200 OK。文档正确返回
302 Redirect(重定向)。到其他地方去获取资源
404 Not Found(没找到)。无法找到这个资源

3、报文

从Web 客户端发往Web 服务器的HTTP 报文称为请求报文(request message)。从服务器发往客户端的报文称为响应报文(response message)。
报文
HTTP 报文包括以下三个部分:

4、连接

4.1 TCP/IP

HTTP网络协议栈
HTTP网络协议栈
HTTP 是个应用层协议。HTTP无需操心网络通信的具体细节;它把联网的细节都交给了通用、可靠的因特网传输协议TCP/IP。

TCP提供:

• 无差错的数据传输;
• 按序传输(数据总是会按照发送的顺序到达);
• 未分段的数据流(可以在任意时刻以任意尺寸将数据发送出去)。

TCP/IP使

只要建立了TCP连接,客户端和服务器之间的报文交换就不会丢失、不会被破坏,也不会在接收时出现错序了。

4.2 连接、IP地址及端口号

在HTTP 客户端向服务器发送报文之前,需要用网际协议(Internet Protocol,IP)地址和端口号在客户端和服务器之间建立一条TCP/IP 连接。

连接步骤:
(a) 浏览器从URL 中解析出服务器的主机名
(b) 浏览器将服务器的主机名转换成服务器的IP 地址
(c) 浏览器将端口号(如果有的话)从URL 中解析出来;
(d) 浏览器建立一条与Web 服务器的TCP 连接
(e) 浏览器向服务器发送一条HTTP 请求报文
(f) 服务器向浏览器回送一条HTTP 响应报文
(g) 关闭连接,浏览器显示文档。

5、协议版本

协议版本 描述
TTP/0.9 1991年原型版本,存在很多严重的设计缺陷。只支持GET方法,不支持多媒体内容的
HTTP/1.0 广泛使用的版本,添加了版本号、各种HTTP首部、一些额外的方法,以及对多媒体对象的处理。
HTTP/1.0+ 在1.0基础上添加了许多新特性,例如:持久的keep-alive 连接、虚拟主机支持,以及代理连接支持。
HTTP/1.1 重点关注的是校正HTTP设计中的结构性缺陷,明确语义,引入重要的性能优化措施,并删除一些不好的特性。当前使用的版本
HTTP-NG/HTTP/2.0 HTTP/1.1 后继结构的原型建议,它重点关注的是性能的大幅优化,以及更强大的服务逻辑远程执行框架。

6、Web组件结构

6.1 代理

位于客户端和服务器之间的HTTP中间实体,接收所有客户端的HTTP 请求,并将这些请求转发给服务器(可能会对请求进行修改之后转发)。
出于安全考虑,通常会将代理作为转发所有Web流量的可信任中间节点使用。代理还可以对请求和响应进行过滤。

6.2 缓存

Web 缓存(Web cache)或代理缓存(proxy cache)是一种特殊的HTTP代理服务器,可以将经过代理传送的常用文档复制保存起来。

6.3 网关

网关(gateway)是一种特殊的服务器,作为其他服务器的中间实体使用。通常用于将HTTP流量转换成其他的协议。网关接受请求时就好像自己是资源的源端服务器一样。客户端可能并不知道自己正在与一个网关进行通信。

6.4 隧道

隧道(tunnel)是建立起来之后,就会在两条连接之间对原始数据进行盲转发的HTTP应用程序。HTTP隧道通常用来在一条或多条HTTP连接上转发非HTTP数据,转发时不会窥探数据
HTTP 隧道的一种常见用途是通过HTTP连接承载加密的安全套接字层(SSL,Secure Sockets Layer)流量,这样SSL 流量就可以穿过只允许Web流量通过的防火墙了。
隧道

6.5 Agent 代理

用户Agent代理是代表用户发起HTTP请求的客户端程
序。所有发布Web请求的应用程序都是HTTP Agent代理。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注