1. TCP/IP 简介
- 首先应该理解 TCP/IP 协议族中的四个分层:应用层、传输层、网络层、数据链路层,详细请看另一篇博客。
- HTTP 位于应用层,负责生成或解析报文
- TCP、UDP 位于传输层,负责将报文方便、可靠得传输
- IP 位于网络层,负责搜索地址、路由中转、传输
- 数据链路层是硬件设备
2. HTTP
- HyperText Transfer Protocol,超文本转移协议,是TCP/IP 协议族的子集,用于客户端和 服务器之间的通信。详细请看其他文章:HTTP基础、HTTP报文、HTTP状态码、HTTP首部。
- 请求报文
- 响应报文
- Chrome开发者工具查看 HTTP 报文
- ① 打开 Network
- ② 地址栏输入网址
- ③ 在 Network 点击,查看 Request/Response Headers,点击「view source」
3. TCP、UDP
- TCP(三次握手,四次挥手)
- 可靠:三次握手、四次挥手;
- 字节流服务:为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理;
- 可靠、面向连接、相对 UDP 较慢;
- UDP
- 不可靠,不面向连接、相对 TCP 较快
4. curl 命令的使用
- 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。
语法:
1
# curl [option] [url]
常见参数
- -s :silent,安静模式,不显示过程或错误信息
- -v :verbose,显示请求和响应报文
- -I :head,仅仅显示响应报文,不显示请求返回的内容
- -i :include,显示响应报文
- -H :header,增加请求时的请求头信息
- -X :request,自定义请求方法,默认为GET
- -d :data,定义POST请求中发送的数据
- -A :agent,自定义User-Agent用户代理
- -o : output,保存到指定文件
示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15// 最简单用法,显示请求过程和请求结果
$ curl www.baidu.com
// 最常用用法,显示请求报文、响应报文、请求结果
$ curl -s -v www.baidu.com
// 自定义用POST方法进行HTTP通信,并添加自定义请求头
$ curl -X POST -s -v -H "Frank: xxx" -- "https://www.baidu.com"
// 发送数据
$ curl -X POST -d "1234567890" -s -v -H "Frank: xxx" -- "https://www.baidu.com"
// 下载文件保存到本地指定文件
$ curl http://www.baidu.com > index.html
$ curl -o index.html http://www.baidu.com
赏
使用支付宝打赏
使用微信打赏
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏
扫描二维码,分享此文章