HTTP协议是如何通信的

一、什么是HTTP协议

HTTP协议是HyperText Transfer Protocol的缩写,即超文本传输协议。是由w3c(万维网联盟)制定的一种应用层协议,用来定义浏览器与web服务器之间如何通信以及通信的数据格式。

因为BS架构中的通信模块就是以HTTP这个协议作为标准协议的,所以对该协议有所了解可以更好的编写程序。

二、HTTP协议是如何通信的

HTTP协议的通信过程可以分为以下四个步骤:

  1. 浏览器根据IP地址和端口号与服务器建立连接
  2. 向Web服务器发送请求数据包
  3. Web服务器接收请求数据包后,发送相应的响应数据包
  4. 浏览器接收响应数据后关闭连接

在这个过程中,一次请求对应一次连接,当浏览器再次发请求给服务器时,Web服务器并不知道这就是上次发请求的客户端,这也是HTTP协议的一个特点-无状态协议。这种需要时建立连接,使用结束后立即断开连接的方式使得Web服务器可以利用有限的连接为尽可能多的客户提供服务。也正是具备了这样的特点,才使得BS结构能够承载企业级应用的大量访问。

三、HTTP协议中的数据格式

在HTTP协议控制的数据走向中,既包括客户端发送给服务器端的请求数据也包括服务器端返回给客户端的响应信息,而具有一定规范的数据格式是保证通信标准的第一要素。借助于一些浏览器的插件或者浏览器本身内嵌的功能模块,可以实现对请求数据、响应数据的抓取,熟练掌握这些数据的主要部分,可以有利于理解BS模型中的一些处理问题的方式。通常情况下的请求数据包及响应数据包结构如图 – 14所示。

1. 请求数据包组成

请求数据包包含三个部分:

  1. 请求行,包括请求方式,请求资源路径,以及协议版本
  2. 消息头是由若干的键值对组成,主要用于传递给Web服务器一些信息。如,浏览器版本、接受资源的类型等
  3. 在消息头的下面会跟着一个空白行,这样就可以区分出消息头与实体内容这两个部分。而在请求数据包中,大部分情况实体内容为空,只有当请求方式为POST时,实体内容才有要提交的表单数据

2.响应数据包组成

响应数据包也包含三个部分:

  1. 状态行,包括协议类型、版本、状态码、状态描述
  2. 消息头(若干),也是多组键值对组成的信息说明。如返回的Content-Type消息头可以告诉浏览器返回的结果数据类型和字符集
  3. 实体内容,位于消息头下面的一个空白行之后。空白行意在通知浏览器消息头的结束以及结果内容的开始,浏览器就从这里开始数据的逐行解析。
时间: 2025-01-07 05:35:00

HTTP协议是如何通信的的相关文章

Android基础入门教程——7.6.4 基于UDP协议的Socket通信

Android基础入门教程--7.6.4 基于UDP协议的Socket通信 标签(空格分隔): Android基础入门教程 本节引言: 本节给大家带来Socket的最后一节:基于UDP协议的Socket通信,在第一节中我们已经详细地 比较了两者的区别,TCP和UDP最大的区别在于是否需要客户端与服务端建立连接后才能进行 数据传输,如果你学了前两节TCP的,传输前先开服务端,accept,等客户端接入,然后获得 客户端socket然后进行IO操作,而UDP则不用,UDP以数据报作为数据的传输载体,

于TCP协议的socket通信

基于TCP协议Socket服务端和客户端的通信模型: Socket通信步骤: 1.建立服务端ServerSocket和客户端Socket 2.打开连接到Socket的输出输入流 3.按照协议进行读写操作 4.关闭相对应的资源 多线程服务器 多线程用来实现 服务器与多客户端之间的通信 基本步骤 1 服务器创建serverSocket,循环调用accept()等待客户端连接 2 客户端创建一个scoket并请求和服务器端连接 3 服务器端接收客户端请求,创建socket与该客户建立专线连接 4 建立

Android基础入门教程——7.6.3 基于TCP协议的Socket通信(2)

Android基础入门教程--7.6.3 基于TCP协议的Socket通信(2) 标签(空格分隔): Android基础入门教程 本节引言: 上节中我们给大家接触了Socket的一些基本概念以及使用方法,然后写了一个小猪简易聊天室的 Demo,相信大家对Socket有了初步的掌握,本节我们来学习下使用Socket来实现大文件的断点续传! 这里讲解的是别人写好的一个Socket上传大文件的例子,不要求我们自己可以写出来,需要的时候会用 就好! 1.运行效果图: 1.先把我们编写好的Socket服务

Android基础入门教程——7.6.2 基于TCP协议的Socket通信(1)

Android基础入门教程--7.6.2 基于TCP协议的Socket通信(1) 标签(空格分隔): Android基础入门教程 本节引言: 上一节的概念课枯燥无味是吧,不过总有点收获是吧,本节开始我们来研究基于TCP协议的Socket 通信,先来了解下Socket的概念,以及Socket通信的模型,实现Socket的步骤,以及作为Socket服务 端与客户端的两位各做要做什么事情!好的,我们由浅入深来扣这个Socket吧! 1.什么是Socket? 2.Socket通信模型: Socket通信

深度剖析MQTT协议的整个通信流程

http://www.elecfans.com/d/587483.html MQTT,目前物联网的最主要的协议,基本所有收费的云平台都是基于MQTT协议,比如机智云,和所有的开放云平台比如中国移动的oneNet.百度的云平台也都支持MQTT的接入.虽然MQTT很火,但是目前对MQTT的很少,尤其是在如何移植到嵌入式上来.大部分的平台商的做法都是跟模块商合作把MQTT协议集成到WiFi模块跟GPRS模块里面,捆绑一销售,不让用户过多的了解物联网最核心的东西. 在还没有深入去了解MQTT协议之前,总

Day 网络协议介绍 简单通信的实现

比如说实现两个手机之间的通信,需要做的几部: 服务端: 1,买手机 2,插卡 3,开机 4,等电话链接 5,基于建立的链接,收发协议 6,挂电话 7,关机 import socket #买手机 phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #插卡 phone.bind(('127.0.0.1',8080)) #开机 phone.listen(5) #等电话链接 print('server start...') conn,client

JAVA基础知识之网络编程——-TCP/IP协议,socket通信,服务器客户端通信demo

OSI模型分层 OSI模型是指国际标准化组织(ISO)提出的开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它将网络分为七层:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层 TCP/IP协议 TCP/IP是一系列网络通信协议的统称,其中最核心的两个协议是TCP和IP.TCP称为传输控制协议,IP称为互联网络协议. 网络分层除了OSI模型分层,还有TCP/IP模型分层,将网络划分为四层,应用层.传输层.网际层

(转)服务端使用c++实现websocket协议解析及通信

转自:http://blog.csdn.net/grafx/article/details/54234518 WebSocket 设计出来的目的就是要使客户端浏览器具备像 C/S 架构下桌面系统的实时通讯能力. 浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据.因为 WebSocket 连接本质上就是一个 TCP 连接,所以在数据传输的稳定性和数据传输量的大小方面,和轮询以及 Comet 技术比

关于HTTP协议及SOCKET通信

一.HTTP 1.报文结构 HTTP:超文本传输协议,报文分为请求报文和响应报文. 2.端口(tomcat端口) http在熟知的80端口使用TCP的服务:tomcat的默认端口是8080 3.状态码含义 5.get和post方法 get是最简单的一种请求,其主要功能是从服务器端获取用户所需资源,并将其作为响应返回给客户端,这些资源可以是html页面,图片,文档等内容中的任何一种,但需要注意的是,get方法主要用来获取服务器端资源信息,就如同数据库中查询操作一样,不会影响到自身的状态,删除,修改