curl命令学习
来源:互联网 发布:淘宝转化率如何计算 编辑:程序博客网 时间:2024/05/01 22:40
简单的请求
[zhangyoulun@localhost temp]$ curl "http://www.example.com"结果127.0.0.1 - - [27/Feb/2017:16:19:07 +0800] "GET / HTTP/1.1" 200 44 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.21 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2"
http://www.example.com
的网页源代码会输出到控制台
设置user-agent
curl --user-agent "Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0" "https://www.baidu.com"结果127.0.0.1 - - [27/Feb/2017:16:19:04 +0800] "GET / HTTP/1.1" 200 44 "-" "Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0"
对于一些网页,设置user-agent和不设置的返回结果可能是不一样的,这里对于百度的首页,如果不设置UA,则会返回一个简版的百度首页。
显示响应头
[zhangyoulun@localhost temp]$ curl --head "http://www.example.com"HTTP/1.1 200 OKAccept-Ranges: bytesCache-Control: max-age=604800Content-Type: text/htmlDate: Mon, 27 Feb 2017 06:49:34 GMTEtag: "359670651+ident"Expires: Mon, 06 Mar 2017 06:49:34 GMTLast-Modified: Fri, 09 Aug 2013 23:54:35 GMTServer: ECS (rhv/818F)X-Cache: HITContent-Length: 1270
设置Referer
curl --referer "https://www.baidu.com" "https://tieba.baidu.com"结果:127.0.0.1 - - [27/Feb/2017:16:21:35 +0800] "GET / HTTP/1.1" 200 44 "https://www.baidu.com" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.21 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2"
POST请求
服务端$r = file_get_contents("php://input");print_r($r);客户端curl -d 'aaabbbccc' "http://localhost"结果aaabbbccc
服务端$r = $_POST;print_r($r);客户端curl -d 'a=1&b=2' 'http://localhost'结果Array( [a] => 1 [b] => 2)
设置cookie
# 将网站的cookies信息保存到sugarcookies文件中curl -D sugarcookies http://localhost/sugarcrm/index.php# 使用上次保存的cookie信息curl -b sugarcookies http://localhost/sugarcrm/index.php
输出到文件
curl -o mygettext.html http://www.gnu.org/software/gettext/manual/gettext.html
设置代理
# 指定代理主机和端口curl -x proxysever.test.com:3128 http://google.co.in
附录
参数列表
-a/--append 上传文件时,附加到目标文件--anyauth 可以使用“任何”身份验证方法--basic 使用HTTP基本验证-B/--use-ascii 使用ASCII文本传输-d/--data <data> HTTP POST方式传送数据--data-ascii <data> 以ascii的方式post数据--data-binary <data> 以二进制的方式post数据--negotiate 使用HTTP身份验证--digest 使用数字身份验证--disable-eprt 禁止使用EPRT或LPRT--disable-epsv 禁止使用EPSV--egd-file <file> 为随机数据(SSL)设置EGD socket路径--tcp-nodelay 使用TCP_NODELAY选项-E/--cert <cert[:passwd]> 客户端证书文件和密码 (SSL)--cert-type <type> 证书文件类型 (DER/PEM/ENG) (SSL)--key <key> 私钥文件名 (SSL)--key-type <type> 私钥文件类型 (DER/PEM/ENG) (SSL)--pass <pass> 私钥密码 (SSL)--engine <eng> 加密引擎使用 (SSL). "--engine list" for list--cacert <file> CA证书 (SSL)--capath <directory> CA目 (made using c_rehash) to verify peer against (SSL)--ciphers <list> SSL密码--compressed 要求返回是压缩的形势 (using deflate or gzip)--connect-timeout <seconds> 设置最大请求时间--create-dirs 建立本地目录的目录层次结构--crlf 上传是把LF转变成CRLF--ftp-create-dirs 如果远程目录不存在,创建远程目录--ftp-method [multicwd/nocwd/singlecwd] 控制CWD的使用--ftp-pasv 使用 PASV/EPSV 代替端口--ftp-skip-pasv-ip 使用PASV的时候,忽略该IP地址--ftp-ssl 尝试用 SSL/TLS 来进行ftp数据传输--ftp-ssl-reqd 要求用 SSL/TLS 来进行ftp数据传输-F/--form <name=content> 模拟http表单提交数据-form-string <name=string> 模拟http表单提交数据-g/--globoff 禁用网址序列和范围使用{}和[]-G/--get 以get的方式来发送数据-h/--help 帮助-H/--header <line> 自定义头信息传递给服务器--ignore-content-length 忽略的HTTP头信息的长度-i/--include 输出时包括protocol头信息-I/--head 只显示文档信息-j/--junk-session-cookies 读取文件时忽略session cookie--interface <interface> 使用指定网络接口/地址--krb4 <level> 使用指定安全级别的krb4-k/--insecure 允许不使用证书到SSL站点-K/--config 指定的配置文件读取-l/--list-only 列出ftp目录下的文件名称--limit-rate <rate> 设置传输速度--local-port<NUM> 强制使用本地端口号-m/--max-time <seconds> 设置最大传输时间--max-redirs <num> 设置最大读取的目录数--max-filesize <bytes> 设置最大下载的文件总量-M/--manual 显示全手动-n/--netrc 从netrc文件中读取用户名和密码--netrc-optional 使用 .netrc 或者 URL来覆盖-n--ntlm 使用 HTTP NTLM 身份验证-N/--no-buffer 禁用缓冲输出-p/--proxytunnel 使用HTTP代理--proxy-anyauth 选择任一代理身份验证方法--proxy-basic 在代理上使用基本身份验证--proxy-digest 在代理上使用数字身份验证--proxy-ntlm 在代理上使用ntlm身份验证-P/--ftp-port <address> 使用端口地址,而不是使用PASV-Q/--quote <cmd> 文件传输前,发送命令到服务器--range-file 读取(SSL)的随机文件-R/--remote-time 在本地生成文件时,保留远程文件时间--retry <num> 传输出现问题时,重试的次数--retry-delay <seconds> 传输出现问题时,设置重试间隔时间--retry-max-time <seconds> 传输出现问题时,设置最大重试时间-S/--show-error 显示错误--socks4 <host[:port]> 用socks4代理给定主机和端口--socks5 <host[:port]> 用socks5代理给定主机和端口-t/--telnet-option <OPT=val> Telnet选项设置--trace <file> 对指定文件进行debug--trace-ascii <file> Like --跟踪但没有hex输出--trace-time 跟踪/详细输出时,添加时间戳--url <URL> Spet URL to work with-U/--proxy-user <user[:password]> 设置代理用户名和密码-V/--version 显示版本信息-X/--request <command> 指定什么命令-y/--speed-time 放弃限速所要的时间。默认为30-Y/--speed-limit 停止传输速度的限制,速度时间'秒-z/--time-cond 传送时间设置-0/--http1.0 使用HTTP 1.0-1/--tlsv1 使用TLSv1(SSL)-2/--sslv2 使用SSLv2的(SSL)-3/--sslv3 使用的SSLv3(SSL)--3p-quote like -Q for the source URL for 3rd party transfer--3p-url 使用url,进行第三方传送--3p-user 使用用户名和密码,进行第三方传送-4/--ipv4 使用IP4-6/--ipv6 使用IP6
参考
- CURL常用命令
- Linux下curl命令伪装http_referer和user-agent访问
- Linux curl命令详解
0 0
- linux curl命令学习
- curl 命令学习
- Linux curl命令学习
- curl命令学习
- elasticsearch命令curl(学习笔记)
- 关于 curl 命令的深入学习
- 【shell学习笔记】curl命令总结
- Linux学习:curl 与 wget命令
- Linux学习:curl 与 wget命令
- Linux下的curl命令学习
- linux命令之curl学习笔记
- curl命令
- curl命令
- curl 命令
- CURL命令
- curl命令
- curl命令
- curl 命令
- 【leetcode 44】 Wildcard Matching 【正确算法】
- 【数据结构基础】顺序表
- Device Tree(三):代码分析
- OpenCV实现车牌识别,OCR分割,ANN神经网络
- 最好的安排
- curl命令学习
- ionic按模块加载
- 编程:确定两串乱序同构Java
- Android studio 中使用svn
- Android性能优化
- codeforces 779A
- 常用设计模式-单例的几种实现方式
- 基于LDAP的用户管理数据结构
- 工具链环境变量配置