超文本传输协议(HTTP)是一种用于分布式、协作式、超媒体信息系统的应用层协议。HTTP是万维网(World Wide Web)数据通信的基础,超文本文档包括指向用户可以轻松访问的其他资源的超链接,例如,在Web浏览器的地址栏中输入URL,呈现出Web页面。
技术概述
在客户端-服务器计算模型中,HTTP作为一种请求-响应协议发挥作用。例如,网络浏览器可以是客户端,而运行在托管网站计算机上的应用程序可以是服务器。客户端向服务器提交HTTP请求消息。服务器给客户端提供资源(例如HTML文件和其他内容),执行其他功能,将响应消息返回到客户端。响应包含有关请求的完成状态信息,也可能在其消息正文中包含请求的内容。
Web浏览器是用户代理(UA)的示例。其他类型的用户代理包括:搜索服务提供商使用的索引软件(网络爬虫),语音浏览器,移动应用,以及其他软件访问、消耗或显示网页内容。
HTTP旨在允许中间网络元素改善或实现客户端与服务器之间的通信。高流量网站通常受益于网络缓存服务器,该服务器代表上游服务器传送内容以缩短响应时间。Web浏览器缓存以前访问的Web资源,并在可能的情况下重复使用,以减少网络流量。通过与外部服务器中继消息,专用网络边界处的HTTP代理服务器可以促进与没有全局可路由地址的客户端之间的通信。
HTTP是在Internet协议套件框架内设计的应用层协议。作为一个应用层协议适用于底层可靠的传输层协议,TCP就是一个常用的传输层协议。但是,HTTP也可使用不可靠的协议,例如HTTPU和简单服务发现协议(SSDP)中的用户数据报协议(UDP )。
通过统一资源定位符(URL)标识HTTP资源,并将其放置在网络上。HTTPS并不是应用层的新协议,而是使用了SSL的HTTP。采用HTTP协议时,协议方案就是http,故我们所常见的采用HTTP协议的URI有http和https。如RFC 3986中所定义的那样,URI被编码为HTML文档中的超链接,以形成相互链接的超文本文档。
HTTP会话
HTTP会话是一系列网络请求-响应事务。HTTP客户端通过建立到服务器上特定端口的传输控制协议(TCP)连接(通常是端口80,偶尔是端口8080)来发起请求。监听该端口的HTTP服务器正在等待客户端的请求消息。收到请求后,服务器将发回状态行(例如“ HTTP / 1.1 200 OK”)和其自身的消息。虽然也可能会返回错误消息或其他信息,该消息的主体主要是请求的资源。
HTTP会话状态:HTTP是一种无状态协议。无状态协议不要求HTTP服务器在多个请求的持续时间内保留有关每个用户的信息或状态。但是,某些Web应用程序使用HTTP cookie或Web表单内的隐藏变量来实现状态或服务器端会话。
HTTP认证
HTTP提供了多种身份验证方案,例如基本认证、摘要认证、客户端认证和基于表单认证,它们通过挑战-响应机制(challenge-response)进行操作。借此方式,服务器在提供请求的内容之前识别访问对象并对其提出挑战,即就是进行质疑和询问。
HTTP通过一组可扩展的挑战-响应认证方案,提供了用于访问控制和认证的通用框架,服务器可以使用挑战-响应认证方案来质疑和询问客户端请求,客户端可以使用它来提供认证信息。
验证范围
HTTP认证规范还提供了一个任意的、实现具体的构造,用于进一步将公共资源划分给根URI。领域值字符串如果存在,则将其与规范的根URI结合以形成挑战的保护空间组件。这样就允许服务器在一个根URI下定义单独的身份验证范围。
注:文案部分图片及内容来源于网络,版权归原创作者所有,如有侵犯到您的权益,请您联系我们进行删除,给您带来困扰,我们深感抱歉。