HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(World Wide Web )服务器传输超文本到本地浏览器的传送协议。
HTTP 是一个基于 TCP/IP 通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
一个完整的 Web 文档通常是由不同的子文档拼接而成的,像是文本、布局描述、图片、视频、脚本等等。
一、HTTP 的基本性质
1、HTTP是简单的
虽然下一代HTTP/2协议将HTTP消息封装到了帧(frames)中,HTTP大体上还是被设计得简单易读。HTTP报文能够被人读懂,还允许简单测试,降低了门槛,对新人很友好。
2、HTTP是可扩展的
在 HTTP/1.0 中出现的 HTTP headers 让协议扩展变得非常容易。只要服务端和客户端就新 headers 达成语义一致,新功能就可以被轻松加入进来。
3、HTTP是无状态的
HTTP是无状态的。在同一个连接中,两个执行成功的请求之间是没有关系的。这就带来了一个问题,用户没有办法在同一个网站中进行连续的交互,比如在一个电商网站里,用户把某个商品加入到购物车,切换一个页面后再次添加了商品,这两次添加商品的请求之间没有关联,浏览器无法知道用户最终选择了哪些商品。而使用HTTP的头部扩展,HTTP Cookies就可以解决这个问题。把Cookies添加到头部中,创建一个会话让每次请求都能共享相同的上下文信息,达成相同的状态。
注意:HTTP本质是无状态的,使用Cookies可以创建有状态的会话。
二、MIME 类型
MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。MIME Type 是该资源的媒体类型,MIME Type 不是个人指定的,是经过互联网(IETF)组织协商,以 RFC 文件的形式作为建议的标准发布在网上的,大多数的 Web 服务器和用户代理都会支持这个规范。
媒体类型通常通过 HTTP 协议,由 Web 服务器告知浏览器的,具体是通过 Content-Type
响应头来表示的。例如:Content-Type:text/html
。
MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。
下面将列出一些常用的 MIME 类型:
类型/子类型 | 扩展名 |
---|---|
application/msword | doc |
application/octet-stream | * |
application/pdf | |
application/vnd.ms-powerpoint | ppt |
application/x-gzip | gz |
application/x-javascript | js |
audio/x-wav | wav |
image/bmp | bmp |
image/gif | gif |
image/jpeg | jpeg / jpg |
text/css | css |
text/html | html / htm /stm |
video/mpeg | mpeg |
若需获知更多关于 MIME Type 的信息,请参阅:
- RFC 822 - Standard for ARPA Internet text messages
- RFC 2045 - MIME Part 1: Format of Internet Message Bodies
- RFC 2046 - MIME Part 2: Media Types
- RFC 2047 - MIME Part 3: Header Extensions for Non-ASCII Text
- RFC 2048 - MIME Part 4: Registration Procedures
- RFC 2049 - MIME Part 5: Conformance Criteria and Examples
也可参阅: