1 定义
1.1 超文本传输协议
超文本传输协议 (HTTP-Hypertext transfer protocol)是分布式、协作式,超媒体系统应用之间的通信协议。是万维网交换信息的基础。它允许将超文本标记语言(HTML)文档从Web服务器传送到Web浏览器。HTML是一种用于创建文档的标记语言,这些文档包含相关信息的链接。我们可以单击一个链接来访问其它文档、图像或多媒体对象,并获得关于链接项的附加信息。
1.2 统一资源定位符
统一资源定位符URL(Uniform Resource Locator) 地址用于描述一个网络上的资源, 它包含了用于查找某个资源的足够信息。基本格式如下:schema://host[:port#]/path/./[;url-params][?query-string][#anchor]。
名称 |
内容 |
scheme |
指定低层使用的协议(例如:http, https, ftp) |
host |
HTTP服务器的IP地址或者域名 |
port# |
HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明,例如 http://www.cnblogs.com:8080/ |
path |
访问资源的路径 |
url-params |
|
query-string |
发送给http服务器的数据 |
anchor- |
锚 |
URL 的一个例子:
http://www.mywebsite.com/sj/test;id=8079?name=sviergn&x=true#stuff。
名称 |
内容 |
scheme |
http |
host |
www.mywebsite.com |
port# |
80 |
path |
/sj/test |
url-params |
id=8079 |
query-string |
Query String: name=sviergn&x=true |
anchor- |
stuff |
1.3 术语(Terminology)
1.3.1 请求(request)
HTTP的请求消息。
1.3.2 响应(response)
HTTP的响应消息。
1.3.3 资源(resource)
网络上可以用URI来标识的数据对象或服务。
1.3.4 实体(entity)
可被附在请求或回应消息中的特殊的表示法、数据资源的表示、服务资源的回应等,由实体标题(entity header)或实体主体(entity body)内容形式存在的元信息组成。
1.3.5 客户端(client)
指以发出请求为目的而建立连接的应用程序。
1.3.6 用户代理(user agent)
指初始化请求的客户端,如浏览器、编辑器、蜘蛛(web爬行机器人)或其它终端用户工具。
1.3.7 服务器(server)
指接受连接,并通过发送回应来响应服务请求的应用程序。
1.3.8 原始服务器(origin server)
存放资源或产生资源的服务器。
1.3.9 代理(proxy)
同时扮演服务器及客户端角色的中间程序,用来为其它客户产生请求。请求经过变换,被传递到最终的目的服务器,在代理程序内部,请求或被处理,或被传递。代理必须在消息转发前对消息进行解释,而且如有必要还得重写消息。代理通常被用作经过防火墙的客户端出口,用以辅助处理用户代理所没实现的请求。
1.3.10 网关(gateway)
服务器之间的服务器。与代理不同,网关接受请求就好象它就是被请求资源所在的原始服务器,发出请求的客户端可能并没有意识到它在与网关进行通讯。网关是网络防火墙服务器端的门户。对非HTTP系统资源进行访问时,网关做为中间的协议翻译者。
1.3.11 隧道(tunnel)
隧道就好象连接两端看不见的中继器。处于激活状态时,它虽然是由HTTP请求来初始化的,但它并不参与HTTP通讯。当需要中继连接的两端关闭后,隧道也自然终止。在入口有需求及中间程序无法或不该解释要中继的通讯时,通常要用到隧道技术。
1.3.12 缓存(cache)
指程序本地存储的回应消息和用来控制消息存储、重获、删除的子系统。缓存回应的目的是为减少请求回应时间,以及未来一段时间对网络带宽的消耗。任何客户端及服务端都可以包含缓存。服务器在以隧道方式工作时不能使用缓存。任何指定的程序都有能力同时做为客户端和服务器。我们在使用这个概念时,不是看程序功能上是否能实现客户及服务器,而是看程序在特定连接时段上扮演何种角色(客户或服务器)。同样,任何服务器可以扮演原始服务器、代理、网关、隧道等角色,行为的切换取决于每次请求的内容。
2 HTTP特点
(1)支持客户/服务器模式。
(2)简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
(3)灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
(4)无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
(5)无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。为了解决这个问题, Web程序引入了Cookie机制来维护状态。
3 HTTP的请求响应模型
HTTP协议永远都是客户端发起请求,服务器回送响应。见下图:
这样就限制了使用HTTP协议,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。
HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。
4 HTTP工作流程
一次HTTP操作称为一个事务,其工作过程可分为四步:
(1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。
(2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
(3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
(4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。
如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。
相关推荐
### HTTP协议深度解析 HTTP(HyperText Transfer Protocol),即超文本传输协议,是互联网上应用最为广泛的一种网络协议。它负责在Web服务器和浏览器之间发送和接收数据,采用请求-应答模式,确保数据交互的高效性...
### HTTP协议知识点详解 #### 一、HTTP协议概述 **HTTP**(HyperText Transfer Protocol)是一种用于从WWW服务器传输超文本到本地浏览器的应用层协议。它定义了客户端(通常是浏览器)与服务器之间的通信规则,是...
### HTTP协议概念简介 HTTP(Hypertext Transfer Protocol,超文本传输协议)是互联网上最常用的网络协议之一,主要用于从Web服务器传输超文本到本地浏览器的传输协议。它是一种基于请求-响应模式的、无状态的、...
1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和...
### HTTP协议头简介 HTTP(Hypertext Transfer Protocol)是一种应用层协议,用于从Web服务器传输超文本到本地浏览器的传输协议。它规定了客户端与服务器之间如何进行数据交互及数据包格式,使得服务器能够“知道”...
HTTP 协议简介及其工作原理 HTTP 协议简介 超文本传输协议(HTTP)是万维网应用层的协议,由两个程序实现:一个是客户端程序(一般称为浏览器),另一个是服务器(常称 Web 服务器)。这两个通常运行在不同的主机...
Http协议简介** Http协议是一种基于TCP/IP的客户端-服务器模型的应用层协议,主要负责Web应用程序的数据传输。它的设计目标是轻量级、简单,以方便快速实现Web服务。Http协议是无状态的,这意味着每次请求和响应...
Web 应用安全:HTTP 协议简介 在 Web 应用安全中,HTTP 协议是非常重要的一部分。HTTP 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则。超文本传输协议(HTTP)是一种通信协议,它允许...
HTTP协议基于请求/响应模型,客户端发起请求,服务器响应请求并返回数据。 **HTTP请求格式**: 一个完整的HTTP请求由以下部分组成: 1. **请求行**:包括请求方法(如GET、POST)、请求URL(统一资源标识符,...
人脸识别一体机HTTP接口协议_v1.34是基于HTTP协议的接口协议,旨在提供人脸识别一体机设备与外部系统之间的数据交互接口。该协议定义了人脸识别一体机设备的基本信息、身份认证、音频设置、开门条件等多个方面的数据...
### HTTP协议核心知识点详解 #### 一、HTTP协议概述 **HTTP**(HyperText Transfer Protocol)是一种用于分布式、协作式和超媒体信息系统的信息传输协议。它最初由Tim Berners-Lee等人设计,目的是为了支持万维网的...
《互联网网络中的协议简介》是一本深入浅出地介绍互联网中核心网络协议的书籍,旨在帮助读者理解并掌握这些协议的工作原理。书中通过生动形象的解释,使得原本复杂的概念变得通俗易懂,非常适合初学者入门。 网络...
**HTTP协议简介** HTTP(Hypertext Transfer Protocol)是一种用于分布式、协作式和超媒体信息系统的应用层协议。它是互联网上应用最为广泛的一种网络协议,主要用于网页浏览,但不仅仅局限于这个领域,许多其他...
#### HTTP协议简介 HTTP协议,全称HyperText Transfer Protocol,是一种用于分布式、协作式和超媒体信息系统的应用层协议。它以其简单性和高效性闻名,在互联网世界中扮演着至关重要的角色。自1990年首次提出以来,...
HTTP协议是无状态的,这意味着每次请求之间是独立的,服务器不会记住之前请求的状态。为了实现会话跟踪,通常需要使用诸如Cookies等机制来记录用户的特定信息。 ##### 1.3 端口 HTTP协议默认使用端口80进行通信,...
SIP的设计灵感源自HTTP协议,采用文本编码,具备高度可扩展性和易于实现的特点,使其成为互联网多媒体通信系统的理想选择。 #### SIP协议的功能与特性 SIP协议的核心功能包括但不限于: - **用户定位**:SIP能够...