HTTP协议的request/response请求响应模式
我们知道HTTP协议是一种无状态的协议,及客户端和服务器端不需要建立持久的链接。客户端和服务器的链接是基于一种请求应答模式。及客户端和服务器建立一个链接,客户端提交一个请求,服务器端收到请求后返回一个响应,然后二者就断开链接。
这里我们比较熟悉的一个案例是一个多图网页的浏览。
1。建立连接,客户端发送一个网页请求,服务器端返回一个html页面(这里的页面只是一个纯文本的文本,也就是我们写的html代码),关闭连接;
2. 浏览器解析html文件,遇到图片标记得到url这时,客户端和服务器在建立连接,客户端发送一个图片请求,服务器返回图片应答,关闭连接。(这里又涉及到无状态定义:对于服务器来说,这次的请求虽然是同一个客户端的请求但是他还是不知道这个是之前的那个客户端是同一个,及对于事务处理没有记忆能力);
3. 重复2步骤直到html解析完毕;
客户端连接服务器
多图网页的解析
当然以上例子只是一个为了方便我们理解HTTP是无状态协议和HTTP这种请求相应模式的简单例子(基于HTTP 1.0协议),而我们现在的一般使用的HTTP 1.1协议解析网页过程是不同的,在1.1版本中同一个连接可以包含多个请求和对应响应。但是其原理是不变的。如图:
但是需注意的是,服务器的响应次序必须是和客户端请求次序相同的。
注:
无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
客户端与服务器进行动态交互的Web应用程序出现之后,HTTP无状态的特性严重阻碍了这些应用程序的实现,毕竟交互是需要承前启后的,简单的购物车程序也要知道用户到底在之前选择了什么商品。于是,两种用于保持HTTP连接状态的技术就应运而生了,一个是Cookie,而另一个则是Session。HTTP本身是一个无状态的连接协议,为了支持客户端与服务器之间的交互,我们就需要通过不同的技术为交互存储状态,而这些不同的技术就是Cookie和Session了。
分享到:
相关推荐
### HTTP协议请求响应详解 #### 一、HTTP协议简介 HTTP(HyperText Transfer Protocol),即超文本传输协议,是互联网上应用最为广泛的一种网络协议。它属于TCP/IP协议族的应用层,主要用于规范Web浏览器(客户端...
HTTP协议基于请求-响应模型,其中客户端发送请求到服务器,服务器处理请求并返回响应。它是一个无状态的协议,意味着每个请求都是独立的,服务器不会记住之前请求的任何信息。 HTTP协议主要特点: 1. 客户/服务器...
1. **客户端/服务器模式**:HTTP协议基于客户端/服务器模型,其中客户端发送请求到服务器,服务器处理这些请求并返回相应的数据。 2. **无状态性**:HTTP协议是无状态的,这意味着每个请求都是独立的,服务器不会...
HTTP是一种基于请求与响应模式的、无状态的、应用层协议。 ### HTTP请求头 HTTP请求头包含了客户端向服务器发送请求时的一些元信息,这些信息对服务器处理请求至关重要。下面详细介绍一些常见的HTTP请求头: 1. *...
这包括了对Web应用体系架构的理解、B/S结构编程模式、HTTP协议请求响应模式,以及Web应用程序中服务器端技术的应用。 首先,Web应用体系架构主要采用B/S(Browser/Server)结构,即浏览器-服务器模式。这种模式下,...
对于地址解析协议请求响应的具体方法,这里可以分为以下几个步骤: 1. 内网主机A想要与另一内网主机B通信,但只知道B的公网IP地址。 2. A向其NAT设备发送一个带有公网IP地址的ARP请求,NAT设备接收到请求后,查找...
### Spring Boot Web 请求响应详解 #### 一、Spring Boot Web 请求响应概述 Spring Boot 提供了一种简单的方式来构建 RESTful Web 服务。本篇将深入探讨如何使用 Spring Boot 处理 HTTP 请求和响应,理解其背后的...
### Charles_N:HTTP请求响应监听工具详解 #### 一、Charles简介 Charles是一个强大的HTTP代理服务器、HTTP监视器以及反转代理服务器。它主要用于帮助开发者查看所有的HTTP通信,这对于理解和调试Web应用至关重要...
- HTTP采用**客户端-服务器模式**进行通信,其中客户端发送请求到服务器,服务器接收请求后返回响应。 - **无状态协议**意味着每次请求之间不保存任何状态信息,服务器不会记住之前发生的事情。 - **请求与响应...
本文将深入探讨“WsaAsyncSelect模式”下的HTTP异步请求实例,这是在网络编程中实现高效和非阻塞I/O操作的一种方法。初学者可以通过这个例子来学习如何使用WinSock库进行异步通信。 首先,WinSock是Microsoft为...
首先,让我们深入理解“请求-响应”模式。在Web应用中,当用户在浏览器中输入URL并点击回车,前端页面会发起一个HTTP请求(Request)到服务器。这个请求包含了方法(如GET或POST)、URL、协议版本、头部信息以及可能...
SpringBootWeb请求响应涉及到HTTP协议、DispatcherServlet、Controller和HttpServletRequest/HttpServletResponse对象的使用。了解这些概念和工作原理对于开发高效、健壮的Web应用至关重要。通过Postman等工具,...
HTTP协议采用请求-响应模型,由客户端发起请求,服务器返回响应。这种模式确保了通信的单向性,即服务器不能主动向客户端推送信息。HTTP协议是无状态的,这意味着每次请求之间不会保留任何信息,除非使用Cookie或...
HTTP 协议的工作机制是基于请求和响应,浏览器和 Web 服务器之间的一问一答的交互遵守一定的规则。 HTTP 协议的主要特点: 1. 支持客户/服务器模式:HTTP 协议支持客户/服务器模式,浏览器作为客户端,Web 服务器...
本示例主要探讨如何实现一个Http异步请求,以便在Delphi环境下进行非阻塞的数据交互,提高程序的响应速度和用户体验。 首先,我们需要了解HTTP的基本工作原理。HTTP是一个基于TCP/IP的应用层协议,用于客户端...
Keep-Alive 模式是 HTTP 协议中的一种机制,它使客户端到服务器端的连接保持有效,从而避免了每个请求和应答都新建一个连接,并立即断开连接。下面是关于 Keep-Alive 模式的详细解释: 一、什么是 Keep-Alive 模式...
它是一个基于请求与响应模式的、无状态的、应用层协议。本工具“HTTP网页请求过程分析工具”正是针对这个过程进行深入解析的利器,对于Web开发者来说具有极高的实用价值。 在HTTP通信过程中,主要有两个关键角色:...
HEAD 方法:请求获取由 Request-URI 所标识的资源的响应消息报头。 PUT 方法:请求服务器存储一个资源,并用 Request-URI 作为其标识。 DELETE 方法:请求服务器删除 Request-URI 所标识的资源。 TRACE 方法:...