在万维网中,HTTP 是一种数据传输协议。同时,它还是现在最常用的应用程序协议。 最初它的开发只是为了发布和检索 HTML 页面;但是 HTTP 的灵活性使其成为分布式、协作型信息系统中一个至关重要的应用程序。

HTTP 是一种请求/响应协议。 当客户端,尤其是 Web 浏览器,发送请求到 Web 服务器时,HTTP 将指定用于该通信的消息类型。 常用的三种消息类型包括 GET、POST 和 PUT(如图所示)。

GET 是一种客户端数据请求消息。 客户端(Web 浏览器)向 Web 服务器发送 GET 消息以请求 HTML 页面。 当服务器收到 GET 请求时,会以一个状态行(如 HTTP/1.1 200 OK)和自己的一条消息做出响应。 来自服务器的消息可能包含所请求的 HTML 文件(如果存在),或者可能包含一个错误或信息性消息,比如“所请求文件的位置已更改”。

POST 和 PUT 消息用于向 Web 服务器上传数据文件。 例如,当用户将数据输入到嵌入网页的表单中时(比如在完成一个命令请求时),会发送 POST 消息到 Web 服务器。 POST 消息中包含的是用户在表单中提交的数据。

PUT 用于向 Web 服务器上传资源或内容。 例如,如果用户尝试上传一个文件或图像到网站,一个附加了该文件或图像的 PUT 信息将从客户端发送到服务器。

虽然 HTTP 相当灵活,但不是一个安全协议。 由于消息以明文形式向服务器发送消息,它非常容易被拦截和解读。 与之相同的是,服务器的响应(通常是 HTML 页面)也不加密。

为了在 Internet 中进行安全通信,人们使用安全超文本传输 (HTTPS) 协议来访问或发布 Web 服务器信息。 HTTPS 借助验证和加密来保护数据,使数据得以安全地在客户端与服务器之间传输。 HTTPS 中还指定了应用层和传输层之间数据通信的附加规则。 HTTPS 使用的客户端请求服务器响应过程与 HTTP 相同,但在数据流通过网络传输以前会使用安全套接字层 (SSL) 加密。 由于要对流量进行加密和解密,HTTPS 会在服务器上产生额外的负载和处理时间。