#舍得Share#php开发笔记-使用curl查看网页源码/自动跳转/显示头信息/显示通信过程/发送表单信息/文件上传/Referer字段/User Agent

网络运维系列:MacOS终端下CURL代理访问配置 为了测试本地的代理是否生效可用,一般的情况是通过浏览器SwitchyOmega插件配置后来进行测试目标网络的连通性。虽然安装成本不高,但是还是有一些成本,如果能通过CURL命令来验收整体的成本将会更低,本文将重点介绍如何在CURL侧进行代理的联通性测试。 阅读详情


转自:https://lwxshow.com/post/1056.html

curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。@舍得Share

它支持多种协议,下面举例讲解如何将它用于网站开发。

一、查看网页源码

直接在curl命令后加上网址,就可以看到网页源码。我们以网址www.sina.com为例(选择该网址,主要因为它的网页代码较短):

  curl www.tvbs.cc

  <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://www.tvbs.cc/">here</a>.</p>
</body></html>

如果要把这个网页保存下来,可以使用-o参数,这就相当于使用wget命令了。

  curl -o [文件名] www.tvbs.cc

二、自动跳转

有的网址是自动跳转的。使用-L参数,curl就会跳转到新的网址。

  curl -L www.tvbs.cc

键入上面的命令,结果就自动跳转为www.tvbs.cc。

三、显示头信息

-i参数可以显示http response的头信息,连同网页代码一起。

  curl -i www.tvbs.cc

  HTTP/1.0 301 Moved Permanently
Date: Sat, 03 Sep 2011 23:44:10 GMT
Server: Apache/2.0.54 (Unix)
Location: http://www.sina.com.cn/
Cache-Control: max-age=3600
Expires: Sun, 04 Sep 2011 00:44:10 GMT
Vary: Accept-Encoding
Content-Length: 231
Content-Type: text/html; charset=iso-8859-1
Age: 3239
X-Cache: HIT from sh201-9.sina.com.cn
Connection: close

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://www.sina.com.cn/">here</a>.</p>
</body></html>

-I参数则是只显示http response的头信息。

四、显示通信过程

-v参数可以显示一次http通信的整个过程,包括端口连接和http request头信息。

  curl -v www.tvbs.cc

  * About to connect() to www.sina.com port 80 (#0)
* Trying 61.172.201.195... connected
* Connected to www.sina.com (61.172.201.195) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.21.3 (i686-pc-linux-gnu) libcurl/7.21.3 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18
> Host: www.sina.com
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 301 Moved Permanently
< Date: Sun, 04 Sep 2011 00:42:39 GMT
< Server: Apache/2.0.54 (Unix)
< Location: http://www.sina.com.cn/
< Cache-Control: max-age=3600
< Expires: Sun, 04 Sep 2011 01:42:39 GMT
< Vary: Accept-Encoding
< Content-Length: 231
< Content-Type: text/html; charset=iso-8859-1
< X-Cache: MISS from sh201-19.sina.com.cn
< Connection: close
<
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://www.sina.com.cn/">here</a>.</p>
</body></html>
* Closing connection #0

如果你觉得上面的信息还不够,那么下面的命令可以查看更详细的通信过程。

  curl --trace output.txt www.tvbs.cc

或者

  curl --trace-ascii output.txt www.tvbs.cc

运行后,请打开output.txt文件查看。

五、发送表单信息

发送表单信息有GET和POST两种方法。GET方法相对简单,只要把数据附在网址后面就行。

  curl tvbs.cc/form.cgi?data=xxx

POST方法必须把数据和网址分开,curl就要用到--data参数。

  curl --data "data=xxx" tvbs.cc/form.cgi

如果你的数据没有经过表单编码,还可以让curl为你编码,参数是--data-urlencode。

  curl --data-urlencode "date=April 1" tvbs.cc/form.cgi

六、文件上传

假定文件上传的表单是下面这样:

  <form method="POST" enctype='multipart/form-data' action="upload.cgi">
<input type=file name=upload>
<input type=submit name=press value="OK">
</form>

你可以用curl这样上传文件:

  curl --form upload=@localfilename --form press=OK [URL]

七、Referer字段

有时你需要在http request头信息中,提供一个referer字段,表示你是从哪里跳转过来的。

  curl --referer http://www.tvbs.cc

http://www.tvbs.cc

八、User Agent字段

这个字段是用来表示客户端的设备信息。服务器有时会根据这个字段,针对不同设备,返回不同格式的网页,比如手机版和桌面版。

iPhone4的User Agent是

  Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7

curl可以这样模拟:

  curl --user-agent "[User Agent]" [URL]

九、cookie

使用--cookie参数,可以让curl发送cookie。

  curl --cookie "name=xxx" www.tvbs.cc

至于具体的cookie的值,可以从http response头信息的Set-Cookie字段中得到。

十、增加头信息

有时需要在http request之中,自行增加一个头信息。--header参数就可以起到这个作用。

  curl --header "xxx: xxxxxx" http://tvbs.cc

十一、HTTP认证

有些网域需要HTTP认证,这时curl需要用到--user参数。

  curl --user name:password tvbs.cc

【参考资料】

* Using cURL to automate HTTP jobs


curl: command not found解决方法 另外,评论区的信息刚看到,我是自己买的服务器,所以没有考虑那么多场景,以后大家对网上找到的资料还是要抱有怀疑,只有官方文档才是标准,尤其linux命令,这东西我都不敢直接cv下来直接执行。结果刚好服务器上的某个组件 有更新,yum 就直接给组件进行了升级,可能会导致重启或重启失败。大概的意思是:如果 yum update 后面没有指定要更新的包名的话会更新所有已安装的包,只有指定了包名才更新指定的安装包。yum update命令注意:!咱们来日方长,有缘江湖再见,告辞! 阅读详情

相关推荐

curl 快速入门使用教程

这只是 curl 的基础使用,curl 还有许多其他强大的功能,如支持多种协议、SSL 证书、代理等。要了解更多关于 curl 的信息,你可以查阅 curl 的 man 页面 (man curl) 或访问其官方文档。

AI悦创·编程私教1v1 1352

curl命令

curl命令和wget命令都可以用来下载文件,curl还可以用来访问某个网址等。 格式:curl [选项] 网址 常用选项: -o#指定保存到本地的文件名 -v#显示请求某个网址的详细信息 -L#会自动重定向后边指定的网址 1.如http://www.sina.com会跳转到http://www.sina.com.cn/,使用curl不加-...

xiaozhuangyumaotao的博客 3110

【数据库】SQL Server 2008 R2 安装全流程详解与常见问题避坑指南

本文详细解析了SQL Server 2008 R2的完整安装流程与核心配置。从安装前的系统兼容性检查、.NET Framework依赖准备,到图文详解实例配置、混合身份验证模式设置等关键步骤,并提供了安装失败、服务无法启动等高频问题的排查与避坑指南,帮助用户顺利完成部署。

java5的博客 1242

Shell脚本编程--curl命令详解

用途说明 curl命令是一个功能强大的网络工具,它能够通过http、ftp等方式下载文件,也能够上传文件。其实curl远不止前面所说的那些功能,大家可以通过man curl阅读手册页获取更多的信息。类似的工具还有wget。 curl命令使用了libcurl库来实现,libcurl库常用在C程序中用来处理HTTP请求,curlpp是libcurl的一个C++封装,这几个东西可以用在抓取网页、网络监控等方面的开发,而curl命令可以帮助来解决开发过程中遇到的问题。 常用参数 -b/–cookie <nam

Jay的博客 1万+

NVIDIA Jetson Orin系列 - 使用SDK Manager安装JetPack全流程解析

本文详细解析了使用NVIDIA官方SDK Manager为Jetson Orin系列开发板安装JetPack系统的完整流程。从环境准备、设备进入恢复模式,到SDK Manager图形化界面的分步操作指南,提供了新手友好的全流程解析,并分享了安装后的验证方法及常见问题解决方案,帮助开发者高效搭建稳定的边缘AI开发环境。

nn3456的博客 406

Python程序—定子故障三相永磁同步电动机振动与电流数据集

1.0 kW 电机匝间短路故障数据: 正常匝间短路振动数据: 匝间短路故障,严重度为2.26%: 匝间短路故障,严重度为2.70%: 匝间短路故障,严重度为3.35%: 匝间短路故障,严重度为4.41%: 匝间短路故障,严重度为6.48%: 匝间短路故障,严重度为12.17%: 匝间短路故障,严重度为21.69%1.5 kW 电机匝间短路故障数据: 正常匝间短路振动数据: 匝间短路故障,严重度为1.57%: 匝间短路故障,严重度为1.88%: 匝间短路故障,严重度为2.34%

m0_66465741的博客 1320

curl 命令行下工作的文件传输工具---应用篇

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> ...

guohao_Kwok的博客 580

Windows+VSCode+Cline+MCP全流程配置指南

本文提供了一份详细的Windows+VSCode+Cline+MCP全流程配置指南,旨在帮助开发者打造高效的AI辅助编码工作站。文章从环境准备讲起,逐步指导安装VSCode、配置Cline插件、搭建Node.js环境,并重点详解如何通过MCP为Cline集成文件系统和GitHub等工具服务器,实现用自然语言操控开发环境,从而显著提升日常编码与文件管理效率。

weixin_28840143的博客 552

curl命令的使用

curl命令使用

m369880395的博客 1万+

linux系统下XDMA驱动的安装与测试问题总结

先看两个常见的问题。一个是驱动安装问题,一个是驱动测试错误;error 512 能识别PCIE的设备,但是The kernel modle installed correctly, but no devices were recognized.

whm128的博客 3802

【水文学法总结】河道内生态流量计算方法(含MATLAB实现代码)

简介水文学法实现河道内生态流量计算

WW、forever的博客 5015

MacOS 安装curl和wget

MacOS 安装curl和wget@目录 什么是curl和wget 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 curl curl,全称CommandLine URL或CommandLine Uniform Resource Locator,在Linux中curl是利用URL规则在命令行下工作的文件传输工具,可以说是一款开源的强大的http命令行工具。它支持文件的上传和下载,是

Yolanda_XY的博客 1万+

【AI智能体】AI 编程 + 飞书CLI + Skills 重塑开发新范式实战操作详解

AI 编程 + 飞书CLI + Skills 重塑开发新范式实战操作详解

congge 3666

Linux命令之curl

curl 是一种命令行工具,作用是发出网络请求,然后获取数据,显示在"标准输出"(stdout)上面。它支持多种协议,下面列举其常用功能。 一、查看网页源码 直接在 curl 命令后加上网址,就可以看到网页源码。以网址www.sina.com为例(选择该网址,主要因为它的网页代码较短)。 $ curl www.sina.com &lt;html&gt; &lt;head&gt;&lt;t...

u014028063的博客 4057

基于fme和python-docx第三方库批量更新不动产调查表

最近应朋友需要批量更新在不动产成果中提交的各种word报表中的指定数据,根据初步的了解,我做了一个基于fme软件和python-docx第三方库进行一个批量的更新方案。

weixin_43229258的博客 1240

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

curl网站开发指南

curl网站开发指南 作者: 阮一峰 日期: 2011年9月 4日 我一向以为,curl只是一个编程用的函数库。 最近才发现,这个命令本身,就是一个无比有用的网站开发工具,请看我整理的它的用法。 =================================== curl网站开发指南 阮一峰 整理 curl是一种命令行工具,作用是发出网络请求,然后得

tianyu的专栏 - Linux site:blog.youkuaiyun.com/wishfly 1426

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

mac中如何执行cURL 命令

Mac中执行cURL命令的方法,图文教程

weixin_45017726的博客 775

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

curl(1) command

curl 是一种从服务器下载或向服务器传输数据的工具。它支持文件的上传和下载,是综合传输工具,但按使用习惯,一般称 curl 为下载工具。curl 被设计为无需用户交互即可工作。curl 作为一款强大的下载工具,支持包括 HTTP、HTTPS、FTP、SFTP、SCP 等众多协议,还提供了大量有用的技巧,如代理支持、用户身份验证、FTP 上传、HTTP post、SSL 连接、文件传输恢复、Metalink 等等。一般我们使用 curl 作为 HTTP(s) 的客户端访问指定链接。

Doublelv 的博客专栏。 5851

快速获取网页头--curl command

爬虫快速获取网页头操作

weixin_45299811的博客 1295

使用curl命令的-L选项进行重定向操作

使用curl命令的-L选项进行重定向操作

Leon_Jinhai_Sun的博客 2162

mac系统命令行curl详解

https://blog.youkuaiyun.com/fudesign2008/article/details/7608619 CURL? 嗯,说来话长了~~~~ 这东西现在已经是苹果机上内置的命令行工具之一了,可见其魅力之一斑 1) 二话不说,先从这里开始吧! curl http://www.yahoo.com 回车之后,www.yahoo.com 的html就稀里哗啦地显示在屏幕上了~ 2...

Setoge的博客 2860

curl命令常用参数

curl用法大全

教Linux的李老师 2万+

cURL命令详解

显示响应状态码# 显示响应 content_type# 获取更多信息见文末参考文献2效果展示:[外链图片转存中…(img-KuV2xlss-1678796995468)]# 显示响应状态码# 显示响应 content_type# 获取更多信息见文末参考文献2。

qq_26918437的博客 1万+

使用shell脚本批量curl调用接口

这也是一个总结做一个记录和分享,不然每次都得去现写和查,有点浪费时间的,所以我的分享希望对你有帮助,请一键三连,么么哒!

qq_34905631的博客 7669

macOS CURL简单使用

最近做项目,需要服务器实现网络是否通畅,比如通过健康检查接口,但是只能linux服务器测试,很可能还需要测试h2,所以想到了curl,整理一版简单用法。通过上面的分析,实际上curl一个命令就可以干很多命令的事情,功能非常强大。只是有时候我们形成固定习惯了,但是在有些命令不能安装,或者没机会安装的时候,curl可以用来执行各种命令,非常方便,而且基本上都操作系统内置了,尤其是linux服务器领域,基本上都可以使用这个程序。

fenglllle的博客 1448

301 Moved Permanently问题排查与解决

1、问题描述 技术支持反馈通知商户通知不到。即根据商户传过来的地址(举例:http://www.A.com)进行封装(封装后:http://www.A.com?trxNo=123)并请求商户,结果是失败。 2、问题排查 遇到问题,首先是在机器curl下,发现出现了301 Moved Permanently。简单解释下这个错误码 3xx 类状态码表示客户端请求的资源发送了变动,需要客户端⽤新的 URL ᯿新发送请求获取资源,也就是重定向。 「301 Moved Permanently」表示..

taipoucha5799的博客 12万+
上一篇: 国内开源镜像站大集合
下一篇: #舍得Share#XPath教程by lwxshow
几号资源
博客等级 码龄19年 49粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值