Linux- 系统随你玩之--玩出花活的命令浏览器-双生姐妹花

这篇具有很好参考价值的文章主要介绍了Linux- 系统随你玩之--玩出花活的命令浏览器-双生姐妹花。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Linux- 系统随你玩之--玩出花活的命令浏览器-双生姐妹花,linux新,linux,服务器,网络,运维

1、背景

前文在续,书接上一回Linux- 系统随你玩之–玩出花活的命令浏览器下,玩出花活的命令浏览器有个双生姐妹花,今天我们就请它闪亮出场 。

2、命令浏览器-双生姐妹花

2.1、姐妹花简介

curl是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。在那个视窗还没流行的黑暗时代,它是一个用于传输数据的命令行工具与库,同时它支持文件上传和下载。

curl(客户端URL)是一个开放源代码的命令行工具,还包含了用于程序开发的跨平台的库(libcurl),用于在服务器之间传输数据,并分发给几乎所有新的操作系统。
curl编程用于需要通过Internet协议发送或接收数据的几乎任何地方。
curl命令使用了libcurl库来实现,libcurl库经常用在C程序中用来处理HTTP请求,curlpp是libcurl的一个C++封装,这几个东西可以用在抓取网页、网络监控等方面的开发,而curl命令可以帮助来解决开发过程中遇到的问题。

2.2 、验名正身

我们可以通过curl的官方网站获取该工具的最新版本,以及最全面的使用方法。

https://curl.haxx.se/

Linux- 系统随你玩之--玩出花活的命令浏览器-双生姐妹花,linux新,linux,服务器,网络,运维
它的开源代码存放在:github

https://github.com/curl/curl
Linux- 系统随你玩之--玩出花活的命令浏览器-双生姐妹花,linux新,linux,服务器,网络,运维

从官方我们可以知道curl支持以多种方式检索和发送数据,并输出到标准输出,可以无缝衔接标准unix管道使用。在绝大多数的*nix操作系统上都默认安装。

cURL支持几乎所有的互联网协议(DICT,FILE,FTP,FTPS,GOPHER,HTTP,HTTPS,IMAP,IMAPS,LDAP,LDAPS,MQTT,POP3,POP3S,RTMP,RTMPS,RTSP,SCP,SFTP,SMB,SMBS,SMTP,SMTPS,TELNET和TFTP)。
curl还支持SSL认证、HTTP POST、HTTP PUT、FTP上传, HTTP form based upload、proxies、HTTP/2、cookies、用户名+密码认证(Basic, Plain, Digest,CRAM-MD5, NTLM, Negotiate and Kerberos)、file transfer resume、proxy tunneling。

curl设计为无用户交互下完成工作;curl提供了一大堆非常有用的功能,包括代理访问、用户认证、ftp上传下载、HTTP POST、SSL连接、cookie支持、断点续传…。

2.3、常用功能选项

语法格式:

curl [option] [url]

参数选项:

-A:随意指定自己这次访问所宣称的自己的浏览器信息
-A/–user-agent 设置用户代理发送给服务器
-b/–cookie <name=string/file> cookie字符串或文件读取位置
    - basic 使用HTTP基本验证
-B/–use-ascii 使用ASCII /文本传输
-c/–cookie-jar 操作结束后把cookie写入到这个文件中
-C/–continue-at 断点续转
-d/–data HTTP POST方式传送数据
     --data-ascii 以ascii的方式post数据
    --data-binary 以二进制的方式post数据
     --negotiate 使用HTTP身份验证
    --digest 使用数字身份验证
    --disable-eprt 禁止使用EPRT或LPRT
    --disable-epsv 禁止使用EPSV
-D/–dump-header 把header信息写入到该文件中
-e/–referer 来源网址
-f/–fail 连接失败时不显示http错误
-F/–form <name=content> 模拟http表单提交数据
-g/–globoff 禁用网址序列和范围使用{}和[]
-h/–help 帮助
-H/–header 自定义头信息传递给服务器
    --ignore-content-length 忽略的HTTP头信息的长度
-I/–head 仅返回头部信息,使用HEAD请求
-m/–max-time 指定处理的最大时长
-o/–output 指定输出文件名称
   --retry 指定重试次数
-O/–remote-name 把输出写到该文件中,保留远程文件的文件名
-r/–range 检索来自HTTP/1.1或FTP服务器字节范围
-s/–silent 减少输出的信息,比如进度
   --connect-timeout 指定尝试连接的最大时长
-T/–upload-file 上传文件
-u/–user <user[:password]> 设置服务器的用户和密码
-v/–verbose 输出详细的返回信息
-w/–write-out [format] 什么输出完成后
-x/–proxy <host[:port]> 在给定的端口上使用HTTP代理
-#/–progress-bar 进度条显示当前的传送状态
-X/–request 指定什么命令
-y/–speed-time 放弃限速所要的时间。默认为30
-Y/–speed-limit 停止传输速度的限制,速度时间’秒

3、常用实操

3.1、发送请求获取文件

3.1.1、抓取页面内容到一个文件中

通过-o/-O选项保存下载的文件到指定的文件中:
-o:将文件保存为命令行中指定的文件名的文件中
-O:使用URL中默认的文件名保存文件到本地(注意后面的url要具体到某个文件,不然抓不下来。还可以配合使用正则来抓取)

curl -o index.html http://www.baidu.com --将百度首页内容抓取到 index.html中
curl -O index.html http://www.baidu.com
Linux- 系统随你玩之--玩出花活的命令浏览器-双生姐妹花,linux新,linux,服务器,网络,运维

3.1.2、多个文件下载

A. 使用多个-O可以同时获取多个文件内容。若同时从同一站点下载多个文件时,curl会尝试重用链接。
B. 使用循环下载
有时候下载图片可以能是前面的部分名称是一样的,就最后的文件名末尾名不一样。这样就会把test1,test2,test3全部保存下来.
    curl -O http://www.linux.com/test[1-3].jpg

3.1.3、下载ftp文件

curl可以通过ftp下载文件,curl提供两种从ftp中下载的语法

curl -O -u 用户名:密码 ftp://www.linux.com/test1.jpg
curl -O ftp://用户名:密码@www.linux.com/test1.jpg

3.1.4、断点续传

断点续转,从文件头的指定位置开始继续下载/上传;offset续传开始的位置,如果offset值为“-”,
curl会自动从文件中识别起始位置开始传输;

curl -# -o centosstream8.iso -C - http://mirrors.aliyun.com/centos/8-stream/isos/x86_64/CentOS-Stream-8-20230308.3-x86_64-dvd1.iso
curl -C -O http://www.linux.com/test1.jpg

下载进度条
显示进度条(option:-#)或不显示进度条(option:-s)

curl -# -O https://i0.hdslb.com/bfs/archive/f9503413dd4ac32594bac03a4671601e21b02064.jpg
curl -s -O https://i0.hdslb.com/bfs/archive/f9503413dd4ac32594bac03a4671601e21b02064.jpg
Linux- 系统随你玩之--玩出花活的命令浏览器-双生姐妹花,linux新,linux,服务器,网络,运维

3.1.5、上传文件

  1. FTP:

curl -T test1.jpg -u 用户名:密码 ftp://www.linux.com/img/

  1. 表单上传文件: -F/–form
    相当于设置form表单的method="POST"和enctype='multipart/form-data’两个属性

curl --form “fileupload=@filename.txt” http://hostname/resource

3.1.6、内容输出

  1. 获取服务器内容,默认将输出打印到标准输出中(STDOUT)中。

curl https://curl.se

  1. debug场景中,通过 -v参数可以看到详细解析过程

curl -v https://curl.se/
Linux- 系统随你玩之--玩出花活的命令浏览器-双生姐妹花,linux新,linux,服务器,网络,运维

3.2 、利用curl测试接口

  1. 常用的测试命令为:
curl -v -X POST -H "Content-Type: application/json" http://127.0.0.1:8080/user -d'{"username":"admin","password":"xxxxxx"}'

Linux- 系统随你玩之--玩出花活的命令浏览器-双生姐妹花,linux新,linux,服务器,网络,运维

  1. 测试get请求

curl URL
URL -O 文件绝对路径
curl http://www.linuxidc.com/login.cgi?user=test&password=123456

  1. 测试post请求

请求主体用json格式
curl -X POST -H ‘content-type: application/json’ -d @json文件绝对路径 URL
curl -X POST -H ‘content-type: application/json’ -d ‘json内容’ URL
请求主体用xml格式
curl -X POST -H ‘content-type: application/xml’ -d @xml文件绝对路径 URL
curl -X POST -H ‘content-type: application/xml’ -d ‘xml内容’ URL

curl -d “user=nickwolfe&password=12345” http://www.linuxidc.com/login.cgi

A. 发送post请求时需要使用-X选项,除了使用POST外,还可以使用http规范定义的其它请求谓词,如PUT,DELETE等

curl -XPOST url

Linux- 系统随你玩之--玩出花活的命令浏览器-双生姐妹花,linux新,linux,服务器,网络,运维
B. 发送post请求时,通常需要指定请求体数据。可以使用-d或–data来指定发送的请求体。

curl -XPOST -d “queryname=leo&pageSize=10” url

C. 如果需要对请求数据进行urlencode

curl -XPOST --data-urlencode “queryname=leo&pageSize=10” url

d.发送post请求还可以考虑下面几个子选项:

–data-raw
–data-ascii
–data-binary

3.3 、模拟登录相关

3.3.1、cookie

1.保存http的response里面的 cookie 信息。
    curl -c cookiec.txt http://www.linux.com
2.保存http的response里面的 header 信息。
    curl -D cookied.txt http://www.baidu.com
3.curl可以根据旧的cookie写出新cookie并发送到网站:
    curl -b cookies.txt -c newcookies.txt www.cookiesite. com

很多网站都是通过监视你的cookie信息来判断你是否按规矩访问他们的网站的,因此我们需要使用保存的cookie信息。

curl -b cookiec.txt http://www.linux.com
curl -b “domain=linux.com” http://www.linux.com 自定义cookie内容信息

3.3.2、设置代理字符串

当我们经常用curl去访问网站上的信息,人家会把你的IP给屏蔽掉的,这个时候,我们可以用代理
#指定代理主机和端口

curl -x proxysever.test.com:3128 http://google.co.in 或
curl -x 34.xx.xx.xx:12779 -o home.html http://www.XXXX.com

  1. curl限制带宽
    curl URL --limit-rate 速度

3.3.3、 加密与认证

1. 加密HTTP
如果是通过OpenSSL加密的https协议传输的网页,curl可以直接访问:

curl https://xxxx. com

2. http认证
如果是采用证书认证的http地址,证书在本地,那么curl这样使用:

curl -E mycert.pem https://xxxx. com

3.3.4、域名解析

不需要修改/etc/hosts,curl直接解析ip请求域名
将 http://example.com 或 https://example.com 请求指定域名解析的IP为127.0.0.1
参数语法: --resolve host:port:address Force resolve of HOST:PORT to ADDRESS

curl --resolve example.com:80:127.0.0.1 http://example.com/
curl --resolve example.com:443:127.0.0.1 https://example.com/

3.3.4、 301、302

Linux- 系统随你玩之--玩出花活的命令浏览器-双生姐妹花,linux新,linux,服务器,网络,运维
如访问出现301或302,curl 命令行不支持 301 或 302 的解决办法
curl -L --max-redirs 2 http://www.linux.com
-L 指令其实就是支持 location 头
–max-redirs 就是支持的重定向深度,这里指定 2,主要原因是防止进入死循环。
Linux- 系统随你玩之--玩出花活的命令浏览器-双生姐妹花,linux新,linux,服务器,网络,运维

4、结语

各位看官命令浏览器-双生姐妹花curl今天就到此为止,预知此系列后事如何且听下回分解 您了!
Linux- 系统随你玩之--玩出花活的命令浏览器-双生姐妹花,linux新,linux,服务器,网络,运维文章来源地址https://www.toymoban.com/news/detail-782142.html

到了这里,关于Linux- 系统随你玩之--玩出花活的命令浏览器-双生姐妹花的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux】32条指令带你玩转 Linux !

    目录 1,whoami 2,who 3,pwd 4,ls 1,ls  2,ls -l 3,ls -a 4,ls -al 5,ls -d  6,ls -ld 5,clear 6,cd 1,cd  2,cd . 3,cd .. 4,cd /home/litao/linux/  绝对路径 5,cd ../day02/   相对路径 6,cd ~ 7,cd - 7,tree 8,touch 9,mkdir 1,mkdir 2,mkdir -p 10,rmdir rm 1,rmdir 2,rm 3,rm -f 4,rm -r 5,rm -rf 6,

    2024年02月08日
    浏览(52)
  • 一文教你玩转Linux的ping命令,从此成为Linux网络高手

    Ping是一种基于Internet控制消息协议(ICMP)的工具,用于测试主机之间的连接。Ping命令向目标主机发送一个ICMP回显请求,目标主机收到请求后会发送回一个ICMP回显应答,从而告诉发起请求的主机连接是通畅的。Ping命令可以用于测试主机是否在线,以及网络是否通畅。 当Pin

    2024年02月11日
    浏览(39)
  • selenium⼊⻔到放弃-------->学会了就是玩,能玩出花来

    爬虫和反爬虫之间的斗争 爬虫的建议 动态HTML技术了解 获取ajax数据的方式 selenium+chromedriver获取动态数据 selenium 下载chromedriver 安装Seleniumselenium入门 Chrome (了解) Chrome 案例 selenium案例 定位元素 执行JS 操作表单元素 登录豆瓣练习 行为链 Cookie操作 页面等待 打开多窗口和切换页

    2024年01月16日
    浏览(50)
  • Android App保活的方式

    在Android系统中,当应用程序进入后台或者被用户关闭后,系统会自动回收该应用程序的资源,以达到优化系统性能的目的。但是,有些应用程序需要在后台长时间运行,比如音乐播放器、即时通讯等,这时就需要使用一些技术手段来保持应用程序的运行状态,以确保应用程序

    2024年02月16日
    浏览(45)
  • UDP端口探活的那些细节

    商业客户反馈用 categraf 的 net_response 插件配置了 udp 探测, 遇到报错了,如图  udp是无连接的,无法用建立连接的形式判断端口。 插件最初的设计是需要配置udp的发送字符,并且配置期望返回的字符串, 通过返回字符与期望字符是否相等,来判断端口是否连通。用户随即发了

    2024年02月21日
    浏览(29)
  • 【物联网技术对生活的影响与展望】

    随着科技日新月异的发展,物联网(IoT)技术正在快速地影响着我们的生活。它是将各种设备和物品连接在一起,通过互联网使它们可以相互交流和传递数据的技术。它的应用范围广泛,可以涵盖从智能家居到工业网络的各个领域。 物联网技术最主要的应用范围之一是智能家

    2024年02月05日
    浏览(37)
  • 同城双活的必修课 - 落地经验与关键挑战解析

    同城双活是一种容灾架构的设计模式,主要用于提高系统的可用性和容错性。它通常涉及在同一个城市内建立两个数据中心(机房),这两个数据中心同时对外提供服务,实现了高可用性和冗余。     关键特点和优势包括: 双活部署 : 两个数据中心都处于活跃状态,同时处

    2024年02月05日
    浏览(48)
  • Web3专属的流支付协议,Zebec把它玩出了新的花样

    从GameFi到元宇宙,再到DAO,Web3实际上已经悄然到来。当众多去中心化DAO在互联网上建立起来的时候,可能很少有人想过自治组织如何能够团结在一起为共同目标做事,连接大家贡献的除了理想以及对去中心化的追求之外,另外还有薪酬。 虽然人们遮遮掩掩不愿提及,但是这

    2023年04月18日
    浏览(28)
  • 【Unity UIToolkit】UIBuilder基础教程-制作简易的对话系统编辑器 3步教你玩转Unity编辑器扩展工具

    随着Unity开发的深入,基本的Unity编辑器界面并不能满足大部分玩家高阶开发的要求。为了提高开发的效率,有针对性的定制化扩展编辑器界面是提高开发效率的不错选择。 今天就给大家带来Unity官方提高的编辑器扩展工具UIToolkit(集成了UIBuilder和UI Debugger等插件)的使用教程。

    2024年02月04日
    浏览(60)
  • 能把百度玩出花样的人肯定不简单,分享几个鲜为人知的搜索引擎高级语法

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「专栏简介」: 此文章已录入专栏《网络安全快速入门》 渗透过程中,通常会使用搜索引擎来收集重要信息、确定攻击点。 inurl 用来搜索url中包含指定

    2024年01月22日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包