Http协议详解

HTTP协议简介

中文名称:超文本传输协议。英文全称 Hyper Text Transfer Protocol。HTTP协议位于OSI网络参考模型的第七层应用层,所以它是一个应用层的协议,Http协议基于TCP协议,运行在TCP协议之上,是整个万维网数据通信的基石。

HTTP协议的特点

  • 基于请求和响应

HTTP协议是一个基于请求和响应模式的协议,在整个internet中发送请求消息和响应消息都使用它。换言之HTTP协议分为两部分:请求(发送)和响应(回复)

  • 无连接

无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

  • 无状态

HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样一方面可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

  1. 默认端口号80
  2. 明文传输
  3. 灵活

HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

  • 简单快速

客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

  • 支持B/S以及C/S模式

HTTP的请求

在HTTP协议的特点中介绍到,HTTP协议由两部分构成,请求和响应。请求阶段是指从客户端将数据发送到服务端的过程。

下面首先了解请求报文的格式

HTTP的请求格式

 

HTTP请求报文示例

在浏览器中查看,或者手写示例

 

GET /hello.txt HTTP/1.1

User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3

Host: www.example.com

Accept-Language: en, mi

HTTP的响应

在HTTP协议的特点中介绍到,HTTP协议由两部分构成,请求和响应。响应阶段是指服务器处理完请求以后,将数据回复给客户端的过程。

接下来了解响应报文的格式

HTTP的响应格式

 

HTTP响应报文示例

在浏览器中查看,或者手写示例

HTTP/1.1 200 OK

Date: Mon, 27 Jul 2009 12:28:53 GMT

Server: Apache

Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT

ETag: "34aa387-d-1568eb00"

Accept-Ranges: bytes

Content-Length: 51

Vary: Accept-Encoding

Content-Type: text/plain

HTTP的请求方法

根据 HTTP 标准,HTTP 请求可以使用多种请求方法。

HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD方法。

HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。

Http方法

含义

GET 方法

通常用于请求服务器发送某个资源。不包含主体

HEAD 方法

与 GET 方法类似,但服务器在响应中只返回头部,使用 HEAD 方法可以,在不获取资源的情况下了解资源的情况 (比如,判断其类型);通过查看响应中的状态码,看看某个对象是否存在;通过查看头部,测试资源是否被修改了;不包含主体

POST 方法

该方法是用来向服务器发送数据的,常用于 HTML 表单,包含主体

PUT 方法

该方法的语义就是让服务器用请求的主体部分来创建一个由所请求的 URL 命名的新文档,如果那个 URL 已经存在的话,就用这个主体来替代它。包含主体

PATCH

是对 PUT 方法的补充,用来对已知资源进行局部更新 。

TRACE 方法

主要用于验证请求是否如愿穿过了请求 / 响应链,不包含主体

OPTIONS 方法

决定可以在服务器上执行那些方法,不包含主体

DELETE 方法

该方法就是请服务器删除请求 URL 所指定的资源,但是客户端应用程序无法保证删除操作一定会被执行,因为 HTTP 规范允许服务器在不通知客户端的情况下撤销请求,不包含主体

CONNECT

HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。

扩展方法

指的是没有在 HTTP/1.1 规范中定义的方法,这些方法为开发者提供了一种扩展这些 HTTP 服务能力的手段。

注意 :

并不是每个服务器都实现了所有的方法。

即使服务器实现了所有这些方法,这些方法的使用很可能也是受限的。

例如,支持 DELETE 方法或 PUT 方法的服务器可能并不希望任何人都能够删除或存储资源,这些限制通常都是在服务器的配置中进行设置的。

虽然 HTTP 的请求方式有 9 种,但是我们在实际应用中常用的也就是 get 和 post,其他请求方式也都可以通过这两种方式间接的来实现。

HTTP的常见状态码

服务器在接收和解释请求消息后,返回一个 HTTP 响应消息。

状态行中的Status-Code 表示服务器发回的响应状态代码;Reason-Phrase 表示状态代码的文本描述。状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:

 

HTTP状态码分类

分类

描述

解释

1xx

指示信息

表示请求已接收,继续处理

2xx

成功

表示请求已被成功接收、理解、接受

3xx

重定向

要完成请求必须进行更进一步的操作

4xx

客户端错误

请求有语法错误或请求无法实现

5xx

服务器端错误

服务器未能实现合法的请求。

HTTP常见状态码

状态码

状态码英文名称

中文描述

200

OK

请求成功。一般用于GET与POST请求

302

Found

重定向。与301类似。但资源只是临时被移动。客户端应继续使用原有URI

404

Not Found

服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面

500

Internal Server Error

服务器内部错误,无法完成请求

505

HTTP Version not supported

服务器不支持请求的HTTP协议的版本,无法完成处理

 

 

HTTP的头部

HTTP 头部字段向请求和响应报文中添加了一些附加信息。本质上来说,它们只是一些名 / 值对的列表。头部和协议配合工作,共同决定了客户端和服务器能做什么事情。

头部的分类:

  • 通用头部:既可以出现在请求报文中,也可以出现在响应报文中,它提供了与报文相关的最基本的信息
  • 请求头部:只在请求报文中有意义的头部。用于说明是谁或什么在发送请求、请求源自何处,或者客户端的喜好及能力。
  • 响应头部:响应头部为客户端提供了一些额外信息,比如谁在发送响应、响应者的功能,甚至与响应相关的一些特殊指令
  • 实体头部:描述主体的长度和内容,或者资源自身
  • 扩展头部:规范中没有定义的新头部,开发者可以自定义一个头部的值 / 对

通用头部

通用Header

含义

Connection

允许客户端和服务器指定与请求 / 响应连接有关的选项

Date

提供日期和时间标志,说明报文是什么时间创建的

当前的GMT时间。你可以用setDateHeader来设置这个头以避免转换时间格式的麻烦。

MIME-Version

给出了发送端使用的 MIME 版本

Transfer-Encoding

告知接收端为了保证报文的可靠传输,报文采用了的编码方式

Update

给出了发送端可能想要 “升级” 使用的新版本或协议

Trailer

如果报文采用了分块传输编码方式,就可以用这个头部列出位于报文拖挂部分的头部集合

Cache-Control

用于随报文传送缓存指示

请求头部

请求头

含义

Client-IP

提供了运行客户端的机器的 IP 地址

From

提供了客户端用户的 E-mail 地址

Host

给出了接收请求的服务器的主机名和端口号

Referer

提供了包含当前请求 URI 的文档的 URL

UA-Color

提供了与客户端显示器的显示颜色有关的信息

UA-CPU

给出了客户端 CPU 的类型或制造商

UA-OS

给出了运行在客户端机器上的操作系统名称及版本

UA-Pixels

提供了客户端显示器的像素信息

User-Agent

将发起请求的应用程序名称告知服务器      

Accept

告诉服务器能够发送哪些媒体类型

Accept-Charset

告诉服务器能够发送哪些字符集

Accept-Encoding

告诉服务器能够发送哪些编码方式

Accept-Language

告诉服务器能够发送哪些语言

TE

告诉服务器可以使用那些扩展传输编码

Expect

允许客户端列出某请求所要求的服务器行为

Range

如果服务器支持范围请求,就请求资源的指定范围

If-Match

如果实体标记与文档当前的实体标记相匹配,就获取这份文档

If-Modified-Sinec

除非在某个指定的日期之后资源被修改过,否则就限制这个请求

If-None-Match

如果提供的实体标记与当前文档的实体标记不相符,就获取文档

If-Range

允许对文档的某个范围进行条件请求

If-Unmodified-Since

除非在某个指定日期之后资源没有被修改过,否则就限制这个请求

Authorization

包含了客户端提供给服务器,以便对其自身进行认证的数据

Cookie

客户端用它向服务器传送数据

Cookie2

用来说明请求端支持的 cookie 版本

Max-Forward

在通往源端服务器的路径上,将请求转发给其他代理或网关的最大次数

Proxy-Authorization

这个头部在与代理进行认证时使用的

Proxy-Connection

这个头部是在与代理建立连接时使用的

响应头部

响应头

含义

Age

(从最初创建开始) 响应持续时间

Public

服务器为其资源支持的请求方法列表

Retry-After

如果资源不可用的话,在此日期或时间重试

Server

服务器应用程序软件的名称和版本

服务器名字。Servlet一般不设置这个值,而是由Web服务器自己设置。

Title

对 HTML 文档来说,就是 HTML 文档的源端给出的标题

Warning

比原因短语更详细一些的警告报文

Accept-Ranges

对此资源来说,服务器可接受的范围类型

Vary

服务器会根据这些头部的内容挑选出最适合的资源版本发送给客户端

Proxy-Authenticate

来自代理的对客户端的质询列表

Set-Cookie

在客户端设置数据,以便服务器对客户端进行标识

设置和页面关联的Cookie。Servlet不应使用response.setHeader("Set-Cookie", ...),而是应使用HttpServletResponse提供的专用方法addCookie。参见下文有关Cookie设置的讨论。

Set-Cookie2

与 Set-Cookie 类似

WWW-Authenticate

来自服务器的对客户端的质询列表

客户应该在Authorization头中提供什么类型的授权信息?在包含401(Unauthorized)状态行的应答中这个头是必需的。例如,response.setHeader("WWW-Authenticate", "BASIC realm=\"executives\"")。 
注意Servlet一般不进行这方面的处理,而是让Web服务器的专门机制来控制受密码保护页面的访问(例如.htaccess)。

Refresh

表示浏览器应该在多少时间之后刷新文档,以秒计。除了刷新当前文档之外,你还可以通过setHeader("Refresh", "5; URL=http://host/path")让浏览器读取指定的页面。 
注意这种功能通常是通过设置HTML页面HEAD区的<META HTTP-EQUIV="Refresh" CONTENT="5;URL=http://host/path">实现,这是因为,自动刷新或重定向对于那些不能使用CGI或Servlet的HTML编写者十分重要。但是,对于Servlet来说,直接设置Refresh头更加方便。 

注意Refresh的意义是"N秒之后刷新本页面或访问指定页面",而不是"每隔N秒刷新本页面或访问指定页面"。因此,连续刷新要求每次都发送一个Refresh头,而发送204状态代码则可以阻止浏览器继续刷新,不管是使用Refresh头还是<META HTTP-EQUIV="Refresh" ...>。 

注意Refresh头不属于HTTP 1.1正式规范的一部分,而是一个扩展,但Netscape和IE都支持它。

实体头部

实体头

含义

Allow

列出了可以对此实体执行的请求方法

服务器支持哪些请求方法(如GET、POST等)

Location

告知客户端实体实际上位于何处,用于将接收端定向到资源的位置 (URL) 上去

表示客户应当到哪里去提取文档。Location通常不是直接设置的,而是通过HttpServletResponse的sendRedirect方法,该方法同时设置状态代码为302。

Content-Base

解析主体中的相对 URL 时使用的基础 URL

Content-Encoding

对主体执行的任意编码方式

文档的编码(Encode)方法。只有在解码之后才可以得到Content-Type头指定的内容类型。利用gzip压缩文档能够显著地减少HTML文档的下载时间。Java的GZIPOutputStream可以很方便地进行gzip压缩,但只有Unix上的Netscape和Windows上的IE 4、IE 5才支持它。因此,Servlet应该通过查看Accept-Encoding头(即request.getHeader("Accept-Encoding"))检查浏览器是否支持gzip,为支持gzip的浏览器返回经gzip压缩的HTML页面,为其他浏览器返回普通页面。

Content-Language

理解主体时最适宜使用的自然语言

Content-Length

主体的长度

表示内容长度。只有当浏览器使用持久HTTP连接时才需要这个数据。如果你想要利用持久连接的优势,可以把输出文档写入 ByteArrayOutputStream,完成后查看其大小,然后把该值放入Content-Length头,最后通过byteArrayStream.writeTo(response.getOutputStream()发送内容。

Content-Location

资源实际所处的位置

Content-MD5

主体的 MD5 校验和

Content-Range

在整个资源中此实体表示的字节范围

Content-Type

主体类型

表示后面的文档属于什么MIME类型。Servlet默认为text/plain,但通常需要显式地指定为text/html。由于经常要设置Content-Type,因此HttpServletResponse提供了一个专用的方法setContentType。

ETag

与此实体相关的实体标记

Expires

实体不再有效,要从原始的源端再次获取实体的日期和时间

应该在什么时候认为文档已经过期,从而不再缓存它

Last-Modified

这个实体最后一次被修改的日期和时间

文档的最后改动时间。客户可以通过If-Modified-Since请求头提供一个日期,该请求将被视为一个条件GET,只有改动时间迟于指定时间的文档才会返回,否则返回一个304(Not Modified)状态。Last-Modified也可用setDateHeader方法来设置。

 

附录

CGI

CGI(Common Gateway Interface) 是 HTTP 服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。

绝大多数的 CGI 程序被用来解释处理杰自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器。CGI 程序使网页具有交互功能。

URLConnection

URLConnection是JDK中功能强大的一个抽象类。它表示指向 URL 指定资源的活动连接。

与 URL 类相比,它与服务器的交互提供了更多的控制机制。尤其服务器是 HTTP 服务器,可以使用 URLConnection 对 HTTP 首部的访问,可以配置发送给服务器的请求参数。当然也可以通过它读取服务器的数据以及向服务器写入数据

URLConnection 是 Java 的协议处理器机制的一部分。协议处理器机制是将处理协议的细节与特定数据类型分开。如果要实现一个特定的协议,则实现 URLConnection 的子类即可。程序运行时可以将该子类作为一个具体的协议处理器来使用。

获得URLConnection

String url = “http://www.baidu.com”;

         URL url = new URL(url);
    //获得httpUrlConnectiond对象
   
URLConnection con =url.openConnection();

当我们拿到一个 URLConnection 对象后,并不代表客户端已经和服务器建立了连接。只有主动调用其 connect () 方法才去和服务器建立连接。不过当我们调用 getInputStream (),getContent (),getHeaderField () 和其他要求打开连接的方法时,如果连接尚未打开,它们就会调用 connect ()。所以,在实际开发中我们主动调用 connect () 方法的机会很少。

URLConnection API

方法

含义

setAllowUserInteraction()

设置此对象的 allowUserInteraction 字段的值。

setDoInput()

如果打算使用 URL 连接进行输入,则将 DoInput 标志设置为 true

setDoOutput()

如果打算使用 URL 连接进行输出,则将 DoInput 标志设置为 true

setUseCaches()

设置是否使用缓存,默认为true

getRequestProperty()

返回此连接指定的一般请求属性值,参数为key,返回值为value

setRequestProperty()

设置一般请求属性的值,参数为key , value

setConnectTimeOut()

设置开到此 URLConnection 引用的资源的通信链接的超时值

setReadTimeout()

  将读超时设置为指定的超时值,以毫秒为单位。

getContentEncoding()

返回该 URL 引用的资源的内容编码,未知则返回NULL

getContentLength()

返回此连接的 URL 引用的资源的内容长度

HttpUrlConnection

HttpUrlConnection继承UrlConnection,有它自身独特的状态码和方法

字段/方法

Method

HTTP方法(GET、POST、PUT等)

responseMessage

表示三位数的状态码

HTTP_OK

HTTP状态码:200

setRequestMethod()

设置URL请求的方法,GET、POST、HEAD等协议限制的方法

getRequestMethod()

获得请求方法

getResponseCode()

从HTTP响应消息获取状态码

HTTP响应状态码列表

HTTP状态码列表

状态码

状态码英文名称

中文描述

100

Continue

继续。客户端应继续其请求

101

Switching Protocols

切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议

200

OK

请求成功。一般用于GET与POST请求

201

Created

已创建。成功请求并创建了新的资源

202

Accepted

已接受。已经接受请求,但未处理完成

203

Non-Authoritative Information

非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本

204

No Content

无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档

205

Reset Content

重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域

206

Partial Content

部分内容。服务器成功处理了部分GET请求

300

Multiple Choices

多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择

301

Moved Permanently

永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替

302

Found

临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI

303

See Other

查看其它地址。与301类似。使用GET和POST请求查看

304

Not Modified

未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源

305

Use Proxy

使用代理。所请求的资源必须通过代理访问

306

Unused

已经被废弃的HTTP状态码

307

Temporary Redirect

临时重定向。与302类似。使用GET请求重定向

400

Bad Request

客户端请求的语法错误,服务器无法理解

401

Unauthorized

请求要求用户的身份认证

402

Payment Required

保留,将来使用

403

Forbidden

服务器理解请求客户端的请求,但是拒绝执行此请求

404

Not Found

服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面

405

Method Not Allowed

客户端请求中的方法被禁止

406

Not Acceptable

服务器无法根据客户端请求的内容特性完成请求

407

Proxy Authentication Required

请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权

408

Request Time-out

服务器等待客户端发送的请求时间过长,超时

409

Conflict

服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时发生了冲突

410

Gone

客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置

411

Length Required

服务器无法处理客户端发送的不带Content-Length的请求信息

412

Precondition Failed

客户端请求信息的先决条件错误

413

Request Entity Too Large

由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息

414

Request-URI Too Large

请求的URI过长(URI通常为网址),服务器无法处理

415

Unsupported Media Type

服务器无法处理请求附带的媒体格式

416

Requested range not satisfiable

客户端请求的范围无效

417

Expectation Failed

服务器无法满足Expect的请求头信息

500

Internal Server Error

服务器内部错误,无法完成请求

501

Not Implemented

服务器不支持请求的功能,无法完成请求

502

Bad Gateway

作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应

503

Service Unavailable

由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中

504

Gateway Time-out

充当网关或代理的服务器,未及时从远端服务器获取请求

505

HTTP Version not supported

服务器不支持请求的HTTP协议的版本,无法完成处理

Http Content-Type

Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些网页点击的结果却是下载到的一个文件或一张图片的原因。

文件扩展名

Content-Type(Mime-Type)

文件扩展名

Content-Type(Mime-Type)

.*( 二进制流,不知道下载文件类型)

application/octet-stream

.tif

image/tiff

.001

application/x-001

.301

application/x-301

.323

text/h323

.906

application/x-906

.907

drawing/907

.a11

application/x-a11

.acp

audio/x-mei-aac

.ai

application/postscript

.aif

audio/aiff

.aifc

audio/aiff

.aiff

audio/aiff

.anv

application/x-anv

.asa

text/asa

.asf

video/x-ms-asf

.asp

text/asp

.asx

video/x-ms-asf

.au

audio/basic

.avi

video/avi

.awf

application/vnd.adobe.workflow

.biz

text/xml

.bmp

application/x-bmp

.bot

application/x-bot

.c4t

application/x-c4t

.c90

application/x-c90

.cal

application/x-cals

.cat

application/vnd.ms-pki.seccat

.cdf

application/x-netcdf

.cdr

application/x-cdr

.cel

application/x-cel

.cer

application/x-x509-ca-cert

.cg4

application/x-g4

.cgm

application/x-cgm

.cit

application/x-cit

.class

java/*

.cml

text/xml

.cmp

application/x-cmp

.cmx

application/x-cmx

.cot

application/x-cot

.crl

application/pkix-crl

.crt

application/x-x509-ca-cert

.csi

application/x-csi

.css

text/css

.cut

application/x-cut

.dbf

application/x-dbf

.dbm

application/x-dbm

.dbx

application/x-dbx

.dcd

text/xml

.dcx

application/x-dcx

.der

application/x-x509-ca-cert

.dgn

application/x-dgn

.dib

application/x-dib

.dll

application/x-msdownload

.doc

application/msword

.dot

application/msword

.drw

application/x-drw

.dtd

text/xml

.dwf

Model/vnd.dwf

.dwf

application/x-dwf

.dwg

application/x-dwg

.dxb

application/x-dxb

.dxf

application/x-dxf

.edn

application/vnd.adobe.edn

.emf

application/x-emf

.eml

message/rfc822

.ent

text/xml

.epi

application/x-epi

.eps

application/x-ps

.eps

application/postscript

.etd

application/x-ebx

.exe

application/x-msdownload

.fax

image/fax

.fdf

application/vnd.fdf

.fif

application/fractals

.fo

text/xml

.frm

application/x-frm

.g4

application/x-g4

.gbr

application/x-gbr

.

application/x-

.gif

image/gif

.gl2

application/x-gl2

.gp4

application/x-gp4

.hgl

application/x-hgl

.hmr

application/x-hmr

.hpg

application/x-hpgl

.hpl

application/x-hpl

.hqx

application/mac-binhex40

.hrf

application/x-hrf

.hta

application/hta

.htc

text/x-component

.htm

text/html

.html

text/html

.htt

text/webviewhtml

.htx

text/html

.icb

application/x-icb

.ico

image/x-icon

.ico

application/x-ico

.iff

application/x-iff

.ig4

application/x-g4

.igs

application/x-igs

.iii

application/x-iphone

.img

application/x-img

.ins

application/x-internet-signup

.isp

application/x-internet-signup

.IVF

video/x-ivf

.java

java/*

.jfif

image/jpeg

.jpe

image/jpeg

.jpe

application/x-jpe

.jpeg

image/jpeg

.jpg

image/jpeg

.jpg

application/x-jpg

.js

application/x-javascript

.jsp

text/html

.la1

audio/x-liquid-file

.lar

application/x-laplayer-reg

.latex

application/x-latex

.lavs

audio/x-liquid-secure

.lbm

application/x-lbm

.lmsff

audio/x-la-lms

.ls

application/x-javascript

.ltr

application/x-ltr

.m1v

video/x-mpeg

.m2v

video/x-mpeg

.m3u

audio/mpegurl

.m4e

video/mpeg4

.mac

application/x-mac

.man

application/x-troff-man

.math

text/xml

.mdb

application/msaccess

.mdb

application/x-mdb

.mfp

application/x-shockwave-flash

.mht

message/rfc822

.mhtml

message/rfc822

.mi

application/x-mi

.mid

audio/mid

.midi

audio/mid

.mil

application/x-mil

.mml

text/xml

.mnd

audio/x-musicnet-download

.mns

audio/x-musicnet-stream

.mocha

application/x-javascript

.movie

video/x-sgi-movie

.mp1

audio/mp1

.mp2

audio/mp2

.mp2v

video/mpeg

.mp3

audio/mp3

.mp4

video/mpeg4

.mpa

video/x-mpg

.mpd

application/vnd.ms-project

.mpe

video/x-mpeg

.mpeg

video/mpg

.mpg

video/mpg

.mpga

audio/rn-mpeg

.mpp

application/vnd.ms-project

.mps

video/x-mpeg

.mpt

application/vnd.ms-project

.mpv

video/mpg

.mpv2

video/mpeg

.mpw

application/vnd.ms-project

.mpx

application/vnd.ms-project

.mtx

text/xml

.mxp

application/x-mmxp

.net

image/pnetvue

.nrf

application/x-nrf

.nws

message/rfc822

.odc

text/x-ms-odc

.out

application/x-out

.p10

application/pkcs10

.p12

application/x-pkcs12

.p7b

application/x-pkcs7-certificates

.p7c

application/pkcs7-mime

.p7m

application/pkcs7-mime

.p7r

application/x-pkcs7-certreqresp

.p7s

application/pkcs7-signature

.pc5

application/x-pc5

.pci

application/x-pci

.pcl

application/x-pcl

.pcx

application/x-pcx

.pdf

application/pdf

.pdf

application/pdf

.pdx

application/vnd.adobe.pdx

.pfx

application/x-pkcs12

.pgl

application/x-pgl

.pic

application/x-pic

.pko

application/vnd.ms-pki.pko

.pl

application/x-perl

.plg

text/html

.pls

audio/scpls

.plt

application/x-plt

.png

image/png

.png

application/x-png

.pot

application/vnd.ms-powerpoint

.ppa

application/vnd.ms-powerpoint

.ppm

application/x-ppm

.pps

application/vnd.ms-powerpoint

.ppt

application/vnd.ms-powerpoint

.ppt

application/x-ppt

.pr

application/x-pr

.prf

application/pics-rules

.prn

application/x-prn

.prt

application/x-prt

.ps

application/x-ps

.ps

application/postscript

.ptn

application/x-ptn

.pwz

application/vnd.ms-powerpoint

.r3t

text/vnd.rn-realtext3d

.ra

audio/vnd.rn-realaudio

.ram

audio/x-pn-realaudio

.ras

application/x-ras

.rat

application/rat-file

.rdf

text/xml

.rec

application/vnd.rn-recording

.red

application/x-red

.rgb

application/x-rgb

.rjs

application/vnd.rn-realsystem-rjs

.rjt

application/vnd.rn-realsystem-rjt

.rlc

application/x-rlc

.rle

application/x-rle

.rm

application/vnd.rn-realmedia

.rmf

application/vnd.adobe.rmf

.rmi

audio/mid

.rmj

application/vnd.rn-realsystem-rmj

.rmm

audio/x-pn-realaudio

.rmp

application/vnd.rn-rn_music_package

.rms

application/vnd.rn-realmedia-secure

.rmvb

application/vnd.rn-realmedia-vbr

.rmx

application/vnd.rn-realsystem-rmx

.rnx

application/vnd.rn-realplayer

.rp

image/vnd.rn-realpix

.rpm

audio/x-pn-realaudio-plugin

.rsml

application/vnd.rn-rsml

.rt

text/vnd.rn-realtext

.rtf

application/msword

.rtf

application/x-rtf

.rv

video/vnd.rn-realvideo

.sam

application/x-sam

.sat

application/x-sat

.sdp

application/sdp

.sdw

application/x-sdw

.sit

application/x-stuffit

.slb

application/x-slb

.sld

application/x-sld

.slk

drawing/x-slk

.smi

application/smil

.smil

application/smil

.smk

application/x-smk

.snd

audio/basic

.sol

text/plain

.sor

text/plain

.spc

application/x-pkcs7-certificates

.spl

application/futuresplash

.spp

text/xml

.ssm

application/streamingmedia

.sst

application/vnd.ms-pki.certstore

.stl

application/vnd.ms-pki.stl

.stm

text/html

.sty

application/x-sty

.svg

text/xml

.swf

application/x-shockwave-flash

.tdf

application/x-tdf

.tg4

application/x-tg4

.tga

application/x-tga

.tif

image/tiff

.tif

application/x-tif

.tiff

image/tiff

.tld

text/xml

.top

drawing/x-top

.torrent

application/x-bittorrent

.tsd

text/xml

.txt

text/plain

.uin

application/x-icq

.uls

text/iuls

.vcf

text/x-vcard

.vda

application/x-vda

.vdx

application/vnd.visio

.vml

text/xml

.vpg

application/x-vpeg005

.vsd

application/vnd.visio

.vsd

application/x-vsd

.vss

application/vnd.visio

.vst

application/vnd.visio

.vst

application/x-vst

.vsw

application/vnd.visio

.vsx

application/vnd.visio

.vtx

application/vnd.visio

.vxml

text/xml

.wav

audio/wav

.wax

audio/x-ms-wax

.wb1

application/x-wb1

.wb2

application/x-wb2

.wb3

application/x-wb3

.wbmp

image/vnd.wap.wbmp

.wiz

application/msword

.wk3

application/x-wk3

.wk4

application/x-wk4

.wkq

application/x-wkq

.wks

application/x-wks

.wm

video/x-ms-wm

.wma

audio/x-ms-wma

.wmd

application/x-ms-wmd

.wmf

application/x-wmf

.wml

text/vnd.wap.wml

.wmv

video/x-ms-wmv

.wmx

video/x-ms-wmx

.wmz

application/x-ms-wmz

.wp6

application/x-wp6

.wpd

application/x-wpd

.wpg

application/x-wpg

.wpl

application/vnd.ms-wpl

.wq1

application/x-wq1

.wr1

application/x-wr1

.wri

application/x-wri

.wrk

application/x-wrk

.ws

application/x-ws

.ws2

application/x-ws

.wsc

text/scriptlet

.wsdl

text/xml

.wvx

video/x-ms-wvx

.xdp

application/vnd.adobe.xdp

.xdr

text/xml

.xfd

application/vnd.adobe.xfd

.xfdf

application/vnd.adobe.xfdf

.xhtml

text/html

.xls

application/vnd.ms-excel

.xls

application/x-xls

.xlw

application/x-xlw

.xml

text/xml

.xpl

audio/scpls

.xq

text/xml

.xql

text/xml

.xquery

text/xml

.xsd

text/xml

.xsl

text/xml

.xslt

text/xml

.xwd

application/x-xwd

.x_b

application/x-x_b

.sis

application/vnd.symbian.install

.sisx

application/vnd.symbian.install

.x_t

application/x-x_t

.ipa

application/vnd.iphone

.apk

application/vnd.android.package-archive

.xap

application/x-silverlight-app

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会飞的王小卡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值