前后端数据交互与HTTP协议

目录

1.前后端通信是什么?

后端向前端发送数据

 前端向后端发送数据

前后端通信的过程与概念解释

前后端通信的过程

 概念解释

前后端的通信方式

1.使用浏览器访问网页

2.HTML的标签

3.Ajax 和 Fetch

HTTP协议

HyperText Transfer Protocol    超文本传输协议

http报文

http保文是什么?

http报文格式

HTTP方法

常用的HTTP方法

get 和 post方法的对比

HTTP状态码


1.前后端通信是什么?


前端和后端数据交互的过程,浏览器和服务器之间数据交互的过程。

后端向前端发送数据

访问页面(后端向前端发送数据的过程)

 前端向后端发送数据

用户注册

 点击注册,浏览器会把填写的数据传递给服务器,服务器会对其进行一些处理然后存在数据库中。这样也就创建好了用户信息。

前后端通信的过程与概念解释

前后端通信的过程

前后端通信的过程是在 “请求 -  响应” 的过程中完成。

 概念解释

前端:浏览器端

客户端:只要能和服务器通信的就叫客户端(浏览器是属于客户端的一种)

        eg:命令行工具cmd,也能访问到客户端

分析:虽然能访问到百度的服务器,但是却不能像浏览器一样,将返回的数据进行渲染成页面。

 后端:服务器端

前后端的通信方式

1.使用浏览器访问网页

通过浏览器向服务器请求资源

在浏览器地址栏输入网址,按下回车。

2.HTML的标签

在浏览器解析HTML标签的时候,遇到一些特殊的标签,会再次向服务器发送请求。

link  /  img  / srcipt / iframe(很少用)

扩展知识:浏览器请求资源时,是异步的,并不是需要等一次请求结束才会进行下一次。而是一次请求的同时可以进行下一次请求。

为什么是异步的? 因为如果是同步的,就必须要等一次请求结束才会进行下次请求,如果某次请求的数据特别大,那么就会一直等待请求完毕,若是网络不好,请求时间就会过长。

所以一般浏览器都会允许多个并发请求(异步)谷歌浏览器一般允许同一域名下有6个并发请求(重点)

eg:一个网页上的图片,并不全部在是同一域名的服务器上,如果把图片都放在同一域名下,它们就会去争那6个并发资格(可能导致页面图片加载不同步显示),如果把它们放在不同的域名下,每个域名都有6个并发资格,所以它们在很大程度上可以并发获取。

eg:精灵图  很多小图片放在一张大图片上。如果不这样做,太多的小图片会占用并发请求通道,需要请求多次,而合在一张图片上,只需要请求一次。

还有一些标签,浏览器解析时,不会向服务器发送请求,但是用户可以使用他们向服务器发送请求

a标签   /  form标签

3.Ajax 和 Fetch

HTTP协议

HyperText Transfer Protocol    超文本传输协议

HTML  超文本标记语言

超文本:原先一个个单一的文本,通过超链接将其联系起来,由原先的单一的文本变成了可无限延伸,扩展的超级文本,立体文本。

HTTP:就是在超文本的基础上的传输协议

eg:HTML / JS / CSS / 图片 / 字体 / 音频 / 视频 等等文件,都是通过HTTP(超文本传输协议)在浏览器和服务器之间传输

每一次前后端通信,前端需要主动向后端发送请求,后端接收到前端的请求后,可以给出响应。HTTP是一个 请求 - 响应协议

http报文

http保文是什么?

浏览器向服务器发送请求时,请求本身就是信息,叫请求报文

服务器向浏览器发送响应时传输的信息,叫响应报文

http报文格式

请求:

请求头: 起始行 + 首部

请求体

响应

响应头:起始行 + 首部

响应体

get 请求,没有请求体,数据是通过请求头携带

post请求,有请求体,数据通过请求体携带(响应体响应体,get,post都有)

HTTP方法

常用的HTTP方法

GET  /  POST / PUT / DELETE

浏览器发送请求时采用的方法,和响应无关

用来定义对于资源采取什么样的操作,有各自的语义。

get 和 post方法的对比

1.语义

GET: 获取数据

POST:创建数据

2.发送数据

GET 通过地址在请求头中携带数据

能携带的数据量和地址的长度有关系,一般最多就几K

POST既可以通过地址在请求头中携带数据,也可以通过请求体携带数据。能携带的数据理论上是无限的。

所以:携带少量数据,可以使用GET请求,大量的数据可以使用POST请求

3.缓存

GET可以被缓存,POST不会被缓存

4.安全性

GET 和 POST 都不安全

发送密码和其它敏感信息时不要使用GET,主要是避免直接被他人窥屏或者通过历史记录找到你的密码。

HTTP状态码

1.HTTP状态码是什么?

定义服务器对请求的处理结果是服务器返回的

2.HTTP状态码的语义

100~199消息:代表请求已经被接收,需要继续处理

ws --> websocket 是vscode的一种插件,使得写的内容在浏览器上自动保存更新。

 200~299 请求成功

200

 300 ~ 399 重定向

原来地址:http://www.imooc.com/

现在地址:https://www.imooc.com/

301 Moved Permanently   永久性移动。(谨慎使用)

分析:访问http://www.imooc.com/ 这个老的网址,并不会直接把数据返回过来,而是跳转到新的网址 https://www.imooc.com/ 后再把数据返回回来。

 会把网址缓存到用户的本地缓存中,下一次,直接重用户缓存里面,找到这个地址进行跳转。

302 Moved Temporarily  临时性移动

不会缓存,每次都会向服务器发送请求,确认一些要跳转的位置。

304  Not Modified  没有修改

本地有一个缓存,但不知道过期没有,就向服务器发送请求看过期没有,没有的话,就返回304,表示这个缓存没有修改,可以使用。

400~499 请求错误

404 Not Found  

一般的话,错误是在前端这边,请求的网址错误啊什么的。。。

500~599 服务器错误

500 Internal Server Error

qml是一种用于构建用户界面的声明性语言,在后端将数据发送给qml前端可以通过以下步骤完成: 1. 定义后端数据对象:在qml中,可以通过定义一个后端数据对象来存储后端发送给前端的数据。可以通过使用JavaScript或C++来创建该对象,并将需要发送的数据保存在对象的属性中。 2. 设置数据绑定:在qml中,可以使用数据绑定机制将后端数据对象中的属性和qml前端界面中的元素相绑定。通过这种方式,当后端数据对象的属性值发生变化时,对应的qml界面元素也会自动更新。 3. 发送数据到qml前端:一旦数据在后端准备好并存储在后端数据对象中,可以通过调用qml前端的接口函数,将后端数据对象传递给qml前端。这样,qml前端就可以访问和展示后端发送的数据了。 4. 处理数据更新:当后端数据对象的属性值发生变化时,qml前端通过后端绑定的数据绑定机制会自动获得最新的数据。根据业务需求,qml前端可以根据接收到的后端数据进行特定的操作,例如显示数据、更新界面等。 需要注意的是,在进行数据传输时,可以使用前端后端之间的信号槽机制来进行数据的传递和处理。这样,当后端数据发生变化时,可以发出信号,qml前端可以接收到该信号并相应地更新界面。同时,qml前端也可以向后端发送信号,传递用户行为等信息。 总之,使用qml后端发送数据前端的过程主要涉及定义后端数据对象、设置数据绑定、发送数据到qml前端和处理数据更新等步骤。通过良好的设计和交互,可以实现后端qml前端之间的数据交互和界面展示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值