Qt中的HTTP

这篇具有很好参考价值的文章主要介绍了Qt中的HTTP。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HTTP概述

HTTP是一种超文本传输协议,是一种用于分布式、协作式和超媒体信息系统的应用层协议,是浏览器端Web通信的基础。

两种架构

B/S架构:Browser/Server,浏览器/服务器架构。
C/S架构:Client/Server,客户端/服务端架构。
B/S架构相对于C/S架构,客户机上无需安装任何软件,使用浏览器即可访问服务器,因此,越来越多的C/S架构正被B/S架构所替代。

基于请求响应的模式

HTTP协议永远都是客户端发起请求,服务器做出响应,即,请求一定是从客户端发起的,服务端在没有收到请求之前是不会做出响应的,也就是说,服务端无法主动推送消息给客户端。

无状态

什么是HTTP的无状态呢? 当浏览器第一次发送请求给服务器时,服务器做出响应,当浏览器第二次发送请求给服务器时,服务器依然做出响应,但服务器并不知道第一次和第二次的请求是不是来自同一个浏览器,即服务器并不会记住请求的是谁。这就是HTTP的无状态。
那怎么使HTTP有状态呢? 很简单,只要加入cookie就可以了,只要在请求时有了这个cookie,服务器就能通过cookie知道,你是不是之前的那个浏览器,这就使HTTP有状态了。

请求报文

请求报文由四部分组成: 分别是请求行,请求头(请求首部字段),空行,实体。
请求行: 请求行里面有:请求方法(GET,POST),资源对象(URI),协议名称和版本号(HTTP/1.1)如:POST/链接 HTTP/1.1
请求头(首部字段): 请求头由于告诉服务器该请求的一些信息,起到传递额外信息的目的。
空行: 空行是为了区分请求头和请求实体
实体: 请求实体即真正所需要传输的数据

响应报文

响应报文由四部分组成: 状态行,响应头,空行,消息体
状态行: 状态行由三部分组成:HTTP版本,状态码(表示相应的结果)原因短语(解释)

HTTP/2 200 OK
HTTP/2 协议和版本
200 状态码 - 200代表OK,表示请求成功,404代表NOT FOUND,表示请求失败,所请求资源未在服务器上发现
OK 原因短语

响应头(响应报文首部): 为了传递额外信息
空行: 为了区别响应实体和响应首部
响应实体: 真正存储响应信息的部分

请求方式

常用请求有GET和POST
二者最主要的区别是:

GET请求的参数位于URL,会显示在地址栏上
POST请求的参数位于request body请求体中
GET请求的安全性不如POST请求,并且GET请求的参数有长度限制,而POST没有

Qt实现HTTP请求

Qt提供了专门的类,用来实现HTTP请求

1.首先要创建一个QNetworkAccessManager对象,这是Qt中进行HTTP请求的开端

2.在发送HTTP请求之前,先关联信号槽。请求结束,获取到服务器的数据时,QNetworkAccessManager对象会发射一个finished信号,该信号携带一个QNetworkReply的信号,服务器返回的所有数据就封装在其中,通过QNetworkReply类提供的各种方法,就可以获取响应头,响应体等各种数据

3.发送HTTP请求,根据请求的地址构建一个QUrl对象,然后直接调用QNetworkAccessManager的get方法,即可发送一个GET请求文章来源地址https://www.toymoban.com/news/detail-721994.html

到了这里,关于Qt中的HTTP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包