Curl:修订间差异

来自牛奶河Wiki
跳到导航 跳到搜索
无编辑摘要
 
(未显示同一用户的5个中间版本)
第21行: 第21行:
  curl -e "<nowiki>http://www.live.com</nowiki>" <nowiki>http://mail.live.com</nowiki>
  curl -e "<nowiki>http://www.live.com</nowiki>" <nowiki>http://mail.live.com</nowiki>


==== 循环下载 ====
==== 下载重命名 ====
有时候下载图片可以能是前面的部分名称是一样的,就最后的尾缀名不一样。
文件下载后,文件名会增加指定的字符
  curl -O http://www.bing.com/python[1-5].JPG
  curl -o #1_#2.jpg <nowiki>http://www.bing.com/{aa,bb}/abc[1-5].jpg</nowiki>


==== 内部变量 ====
可以用下列命令来获取网站的连接、传输以及总耗时:
<nowiki>curl -o /dev/null -s -w '%{time_connect} %{time_starttransfer} %{time_total}' "https://mwbbs.eu.org/"
-w 选项允许用户自定义输出格式,如:-w '%{url_effective}\t%{http_code}\t%{time_total}\n'</nowiki>
curl 还提供了许多其他变量,可以用来获取更详细的 HTTP 请求信息。这些变量通常以 %{variable_name} 的形式表示。
{| class="wikitable"
|+
!Type
!CMD
!Explain
|-
| rowspan="7" |时间
|time_connect
|建立 TCP 连接所花费的时间,包括 DNS 解析、TCP 三次握手等
|-
|time_starttransfer
|从请求开始到服务器开始传输响应数据的第一个字节所花费的时间
|-
|time_total
|整个请求过程的总耗时,包括连接建立、数据传输、接收等所有环节
|-
|time_appconnect
|建立应用程序层连接的时间
|-
|time_namelookup
|DNS 解析时间
|-
|time_pretransfer
|请求开始前的准备时间
|-
|time_redirect
|重定向所花费的时间
|-
| rowspan="4" |请求和响应
|http_code
|HTTP 状态码
|-
|url_effective
|最终访问的 URL
|-
|content_length
|响应内容长度
|-
|speed_download
|下载速度
|-
| rowspan="4" |其他
|remote_ip
|远程服务器的 IP 地址
|-
|remote_port
|远程服务器的端口
|-
|local_ip
|本地使用的 IP 地址
|-
|local_port
|本地使用的端口
|}
[[分类:Develop]]
[[分类:Develop]]
[[分类:Linux]]
[[分类:Linux]]

2024年12月11日 (三) 10:02的最新版本

curl 是一个在 Linux 中利用 URL 规则在命令行下工作的文件传输工具,是一款很强大的 http 命令行工具。支持文件的上传和下载,是综合传输工具,但按传统,习惯称curl 为下载工具。

Get

curl http://127.0.0.1:8080/login?admin&passwd=12345678

Post

curl -d “user=admin&passwd=12345678” http://127.0.0.1:8080/login

Post Json

curl -H “Content-Type:application/json” -X POST -d '{“user”: “admin”, “passwd”:“12345678”}' http://127.0.0.1:8000/login

模仿浏览器

有些网站需要使用特定的浏览器去访问,有些还需要使用某些特定的版本。option: -A 可以指定浏览器

curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)" http://www.bing.com

伪造 referer(盗链)

有些服务器会检查 http 访问的 referer 从而来控制访问。

比如:你是先访问首页,然后再访问首页中的邮箱页面,这里访问邮箱的 referer 地址就是访问首页成功后的页面地址,如果服务器发现对邮箱页面访问的 referer 地址不是首页的地址,就可以断定是盗链。

option: -e 可以设定 referer
curl -e "http://www.live.com" http://mail.live.com

下载重命名

文件下载后,文件名会增加指定的字符

curl -o #1_#2.jpg http://www.bing.com/{aa,bb}/abc[1-5].jpg

内部变量

可以用下列命令来获取网站的连接、传输以及总耗时:

curl -o /dev/null -s -w '%{time_connect} %{time_starttransfer} %{time_total}' "https://mwbbs.eu.org/"
 -w 选项允许用户自定义输出格式,如:-w '%{url_effective}\t%{http_code}\t%{time_total}\n'

curl 还提供了许多其他变量,可以用来获取更详细的 HTTP 请求信息。这些变量通常以 %{variable_name} 的形式表示。

Type CMD Explain
时间 time_connect 建立 TCP 连接所花费的时间,包括 DNS 解析、TCP 三次握手等
time_starttransfer 从请求开始到服务器开始传输响应数据的第一个字节所花费的时间
time_total 整个请求过程的总耗时,包括连接建立、数据传输、接收等所有环节
time_appconnect 建立应用程序层连接的时间
time_namelookup DNS 解析时间
time_pretransfer 请求开始前的准备时间
time_redirect 重定向所花费的时间
请求和响应 http_code HTTP 状态码
url_effective 最终访问的 URL
content_length 响应内容长度
speed_download 下载速度
其他 remote_ip 远程服务器的 IP 地址
remote_port 远程服务器的端口
local_ip 本地使用的 IP 地址
local_port 本地使用的端口