HTTP 概述

HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(World Wide Web )服务器传输超文本到本地浏览器的传送协议。

HTTP 是一个基于 TCP/IP 通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

一个完整的 Web 文档通常是由不同的子文档拼接而成的,像是文本、布局描述、图片、视频、脚本等等。

(图片来源:MDN web docs)

一、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 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

也可参阅:

W3school - MIME 参考手册

原文地址:https://www.cnblogs.com/fzcoder/p/14104824.html