蓉华教育嵌入式系列:网络编程—HTTP(下)
作者:蓉华教育
2025-04-07
103次阅读
1、HTTP协议简介
超文本(html)传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直了当。
http协议可以用来传输超文本,换言之就是服务可以给你响应一个html文档内容,浏览器就能解析。
http协议和TCP/IP协议的联系和区别:
TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据
Http协议是基于TCP之上的,当浏览器须要从server获取网页数据的时候,会发出一次Http请求。Http会通过TCP建立起一个到server的连接通道。当本次请求须要的数据完成后,Http会马上将TCP连接断开,这个过程是非常短的。所以Http连接是一种短连接,是一种无状态的连接。所谓的无状态,是指浏览器每次向server发起请求的时候,不是通过一个连接,而是每次都需要建立一个新的连接;
我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等;
HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送响应的信息给客户端或浏览器;
注意:浏览器给服务器发送数据是一次请求(request)。服务器给浏览器反馈数据是一次响应(response);http在tcp的基础封装数据传输格式,可以传输报文给服务端,服务端报文的方式给你项目。
2、HTTP报文
协议是用来定义数据传输的格式,那么按照一定格式形成的数据包即报文,也可以叫数据报;HTTP 报文分三个部分:起始行(请求行 -- 响应行/状态行),头部(请求头/消息头 -- 响应头/消息头),主体(请求体/实体内容 -- 响应体/实体内容);HTTP 报文分为请求报文和响应报文。
HTTP的请求报文
请求方法(也叫请求方式)有很多,现在需要掌握get和post两种即可;get一般用户查询数据,post一般用于修改数据
URL(Uniform/Universal Resource Locator)是统一资源定位符,俗称请求网址。URI(Uniform Resource Identifier) 是统一资源标识符,俗称请求资源路径。http://localhost:8080/myweb/hello.html以上web地址,加粗部分+非加粗部分=URL。非加粗部分=URI;
与Http1.0不同(连接一次,请求一次,响应一次。响应完毕,马上断开连接。如果还需要请求,需要重新连接),从HTTP/1.1(连接一次,请求多次,响应多次)起,默认都开启了Keep-Alive,保持连接特性,简单地说,当一个网页打开完毕后。client和server之间用于传输HTTP数据的TCP连接不会关闭,假设client再次訪问这个server上的网页,会继续使用这一条已经建立的连接。但Keep-Alive不会永久保持连接。它有一个保持时间。能够在不同的server软件(如Apache)中设定这个时间。
HTTP响应报文
3、web(http)服务器搭建 - 模拟接口
常用的HTTP服务器Nginx,以后都会在linux安装,现在我们用它的模拟接口。所以就在windows安装即可。首先要下载NGINX windows安装包
CGI机制介绍
CGI(Common Gateway Interface,通用网关接口)是一种重要的互联网技术,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据。CGI描述了服务器和请求处理程序之间传输数据的一种标准。实际我们在进行网络请求时,无非就两种情况:浏览器想从服务器上拿下来某种资源,比如打开网页、下载等;浏览器想将自己的数据上传至服务器,比如上传视频、登录、注册等。
上一篇:蓉华教育嵌入式系列:QML与QT音视频
下一篇:蓉华教育嵌入式系列:QT-网络编程(上)