网络协议:HTTP
1、请求报文格式
图
2、应答报文格式
图
3、请求方法:区分不同请求方法的方式很多,可以通过url的结构来判断
| POST | |
| GET | 请求读取一个页面 |
HEAD |
请求读取一个页面,服务器只返回相应头,可以用来检测一个页面是否存在 |
| DELETE | 删除一个uri指定的内容 |
| CONNECT |
4、错误吗
| 200 | |
| 300 | |
| 400 | |
| 500 | |
5、请求一个web页面的交互流程
当我们在浏览器中的地址栏中输入网址如http://www.sina.com/index.html时,后台发生了如下事情
①、浏览器分析地址栏中的URL,并解析出域名www.sina.com。
②、首先在本地系统中的hosts文件中查找该域名对应的IP地址,如果本地hosts文件没有找到对应的IP,再接着去系统设置的DNS服务器上去查询该域名的IP地址。解释一下DNS服务器(Linux系统下/etc/resovf.conf配置了DNS服务IP,如果是手动配置的DNS服务器IP,也会记录在该配置文件中)。
③、DNS服务器将www.sina.com域名对应的IP地址返回给浏览器。
④、浏览器与该服务器建立TCP连接,默认为80端口(这里要经历TCP的三次握手)
⑤、浏览器请求文档:GET /index.html (GET命令系统中默认已安装,命令行可以直接使用GET www.sina.com/index.html请求该文档。
⑥、服务器给出相应,将文档index.html发送给浏览器
⑦、服务端关闭TCP连接(这里要经历TCP的四次挥手)
⑧、浏览器显示index.html文档
6、URL,URI,URN
URL:统一资源定位符
URI:统一资源标记符
URN:统一资源命名符
URL和URN同属于URI的一部分。
一个URL的标准格式为:
<协议>://<域名/IP>:<端口>/<路径>
进行http请求时每个字段都会有,但我们在浏览器中往往没有手动输入<协议>和<端口>,是因为浏览器在发起请求前都会默认添加这些部分。如果用一些分装了URL的库,如果不是按标准的格式传入,那么该URL库就无法解析域名和端口了。比如说poco中URL类。
7、Libcurl 中进行 HTTP 请求
8、Qt 中进行 HTTP 请求
9、QML 中进行 HTTP 请求

浙公网安备 33010602011771号