网站首页 > 技术文章 正文
curl是一个利用URL语法在命令行下工作的文件传输工具,它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。
这篇就用curl这个工具来查看一下http请求与https的请求过程。首先在命令行中输入curl -v http://www.baidu.com,结果如下:
其中前两行:Rebuilt URL to: http://www.baidu.com/和Trying 182.61.200.6...是请求了DNS,也就是域名解析服务器,找出对应的IP地址,进而去请求IP地址;
第三行:TCP_NODELAY set是建立了TCP连接,这也说明HTTP协议是基于TCP连接的
第四行:Connected to www.baidu.com (182.61.200.6) port 80 (#0)是向你请求的服务器建立了连接;
下面就是请求与响应的过程,其中>是客户端向服务器请求的标志,<是服务器向客户端响应的标志。
第五行:GET / HTTP/1.1,是请求方式和请求协议及版本;
第六行:Host: www.baidu.com,是请求的主机;
第七行:User-Agent: curl/7.54.0,是请求的客户端,这里用的是curl工具;
第八行:Accept: */*,意思是接受任何MIME类型的资源;
接下来开始就是服务器向客户端的响应了。
第九行:HTTP/1.1 200 OK,是交流所用的协议及版本号,响应的状态码及信息;
状态码信息:
1xx表示临时响应;
2xx表示成功的响应
3xx表示重定向相关
4xx表示是客户端引起的错误;
5xx表示服务端的错误。
第十行:Accept-Ranges: bytes,响应的 HTTP 标头是由服务器使用以通告其支持部分请求的标志物。此字段的值表示可用于定义范围的单位。
第十一行:Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform,与缓存设置相关的信息;
第十二行:Connection: Keep-Alive,由于http连接是无状态的,有了这个属性,就可以在设定的时间范围内保持连接;
第十三行:Content-Length: 2381,响应内容的长度;
第十四行:Content-Type: text/html,响应文件的类型;
第十五行:Date: Sat, 20 Jul 2019 11:28:20 GMT,是日期;
第十六行:Etag: "588604c8-94d",与响应相关的标签;
第十七行:Last-Modified: Mon, 23 Jan 2017 13:27:36 GMT,最后一次被修改的日期和时间;
第十八行:Pragma: no-cache,另一种随报文传送指示的方式,但并不专用于缓存;
第十九行:Server: bfe/1.0.8.18,服务器应用程序软件的名称和版本
第二十行:Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/,cookie设置的相关信息;
接下来的<!DOCTYPE html>就是响应的内容,在浏览器中经过渲染就可以看到那个简单又大方的界面。
以上是通过工具curl请求http的过程,下面来瞧瞧curl来请求https的过程:
从图中可以很明显看出,https多了安全认证的过程:
经过握手认证之后,才向你请求的服务器资源发起了请求。
所以说https较http安全,就是多了一层ssl,也就是安全认证的过程,之后就在安全传输层进行数据交换。
猜你喜欢
- 2024-10-23 微软发布6月Win11累积更新KB5039212/KB5039213
- 2024-10-23 快速体验之《gor+diffy实现线上流量复制到测试环境》
- 2024-10-23 Colbie Caillat: Try(colbiecaillattry歌词)
- 2024-10-23 基于阿里云 ASK 的 Istio 微服务应用部署初探
- 2024-10-23 浅谈ElasticSearch 集群部署(elastic集群配置)
- 2024-10-23 Python项目中跟踪系统导入Zipkin(基于python的目标跟踪算法)
- 2024-10-23 JVM参数及调优(jvm调优常用参数)
- 2024-10-23 Elasticsearch的路由routing的应用技巧
- 2024-10-23 如何将Elasticsearch的快照备份至OSS
- 2024-10-23 利用工具curl来查看http请求和https请求
- 11-27echarts图形报表的入门案例
- 11-27Echarts仿电梯运行图
- 11-27微信小程序开发之wepy 引入echarts统计图方法 亲测可用
- 11-27yarn安装echarts教程
- 11-27微信小程序使用 ECharts
- 11-274、echarts 如何画图?(必会)
- 11-27JavaScript 前端数据可视化——ECharts.js
- 11-27vue+echarts使用
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)