curl网站开发指南

news/2024/5/10 19:48:24/文章来源:https://blog.csdn.net/weixin_30889885/article/details/97116768

转载 http://www.ruanyifeng.com/blog/2011/09/curl.html 

   我一向以为,curl只是一个编程用的函数库。

最近才发现,这个命令本身,就是一个无比有用的网站开发工具,请看我整理的它的用法。

===================================

curl网站开发指南

阮一峰 整理

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

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

一、查看网页源码

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

  curl www.sina.com

  <!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>

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

  curl -o [文件名] www.sina.com

二、自动跳转

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

  curl -L www.sina.com

键入上面的命令,结果就自动跳转为www.sina.com.cn。

三、显示头信息

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

  curl -i www.sina.com

  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.sina.com

  * 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.sina.com

或者

  curl --trace-ascii output.txt www.sina.com

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

五、发送表单信息

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

  curl example.com/form.cgi?data=xxx

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

  curl --data "data=xxx" example.com/form.cgi

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

  curl --data-urlencode "date=April 1" example.com/form.cgi

六、HTTP动词

curl默认的HTTP动词是GET,使用-X参数可以支持其他动词。

  curl -X POST www.example.com

  curl -X DELETE www.example.com

七、文件上传

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

  <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.example.com http://www.example.com

九、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.example.com

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

十一、增加头信息

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

  curl --header "xxx: xxxxxx" http://example.com

十二、HTTP认证

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

  curl --user name:password example.com

【参考资料】

  * Using cURL to automate HTTP jobs

  * 教你学用CURL

  * 9 uses for cURL worth knowing

转载于:https://www.cnblogs.com/chenying99/archive/2012/11/24/2786045.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_702058.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我是如何将网站全站启用Https的?-记录博客安装配置SSL证书全过程

评论 文章目录 为什么要Https如何选择Https安装部署SSL证书平滑过渡Https搜索引擎的响应启用Https小结正如大家所看到的&#xff0c;部落全站已经启用了Https访问了&#xff0c;连续几天的网站安装和调试SSL终于可以告一段落了。曾经看到身边不少的朋友纷纷启用Https&#xff…

网站无法显示logo?

那是因为你没有配置favicon.ico&#xff0c;每个网站根目录都会有一个favicon.ico&#xff0c;因为每个服务器都会请求根目录下的它。 转载于:https://www.cnblogs.com/cisum/p/8743722.html

html优化网站的方法,利用HTML优化加快网页速度方法介绍

减少web页面下载时间的关键就是设法减小文件大小。当多个页面共用一些成分内容时&#xff0c;就可以考虑将这些公用部分单独分离出来。比如&#xff1a;我们可以将多个HTML页面都用到的脚本程序编写成独立存在的。js文件&#xff0c;然后再在页面中按如下方式调用它&#xff1a…

优化网站设计(七):避免在CSS中使用表达式

前言 网站设计的优化是一个很大的话题,有一些通用的原则,也有针对不同开发平台的一些建议。这方面的研究一直没有停止过&#xff0c;我在不同的场合也分享过这样的话题。 作为通用的原则&#xff0c;雅虎的工程师团队曾经给出过35个最佳实践。这个列表请参考 Best Practices fo…

让你的网站拥有微博(weibo.com)关注图标

最近在做开发的过程中&#xff0c;有一个需求是在网站里面添加新浪微博(http://weibo.com)的关注图标。 先来看看我的运行效果,一下是四种不同的格式&#xff0c;实现都很简单&#xff1a; 操作步骤如下&#xff1a; 第一步&#xff1a;你需要申请一个微博(weibo.com)的账号 如…

php网站开发案例教程ppt,php网站开发案例教程》课件.ppt

php网站开发案例教程》课件.ppt还剩178页未读&#xff0c;继续阅读下载文档到电脑&#xff0c;马上远离加班熬夜&#xff01;亲&#xff0c;很抱歉&#xff0c;此页已超出免费预览范围啦&#xff01;如果喜欢就下载吧&#xff0c;价低环保&#xff01;内容要点&#xff1a;PHP网…

大型网站系统架构分析--转

大型网站系统架构分析 原文地址&#xff1a;http://www.cnblogs.com/Mainz/archive/2009/04/28/1445424.html 千万级的注册用户&#xff0c;千万级的帖子&#xff0c;nTB级的附件&#xff0c;还有巨大的日访问量&#xff0c;大型网站采用什么系统架构保证性能和稳定性&#xf…

Nginx反向代理实现HTTPS网站

1、环境设置 这次是在windows环境下实现的&#xff0c;linux环境下步骤差不多 openssl的windows版本 下载地址&#xff1a; http://slproweb.com/products/Win32OpenSSL.html Nginx的windows版本 下载地址&#xff1a; http://nginx.org/en/download.html 网站使用python的to…

为什么说企业做网站不要选择或找低价便宜的网站建设制作公司?

本人曾经做过这样多次调研&#xff0c;发现存在一个普遍性的问题&#xff0c;那就是当企业在决定做一网站之前&#xff0c;一般都会对市场上的建站服务商进行一次统一的咨询与调查&#xff0c;了解建站服务商的价格和实力问题&#xff0c;其中&#xff0c;感触最深的当然还是价…

10款在线网站原型设计工具 总有一款适合你

2019独角兽企业重金招聘Python工程师标准>>> 现在&#xff0c;基于云端的软件渐渐成为主流&#xff0c;而网站原型设计工具当然也不例外。在线原型工具相比于桌面版有得天独厚的优势&#xff0c;它不需要安装、不限制地点、不限制操作系统&#xff0c;无论你使用的L…

大型网站架构演化发展历程

1初始阶段的网站架构2应用服务和数据服务分离3使用缓存改善网站性能4使用应用服务器集群改善网站的并发处理能力5数据库读写分离6使用反向代理和CDN加速网站响应7使用分布式文件系统和分布式数据库系统8使用NoSQL和搜索引擎9业务拆分10分布式服务转载于:https://www.cnblogs.co…

杨泽业:让你的网站无限可能之给你的网站增加汉字转拼音的新功能

一个网站可以无限可能&#xff0c;你的网站可以成就你的事业&#xff01;这不是一句空话&#xff0c;而是一个可行的方案。今天杨泽业来给大家讲解一下最简单的网站功能的增加。现在增加的是【汉字转拼音】的新功能为例&#xff0c;让你了解一下&#xff0c;你的网站是可以增加…

ubuntu 压缩率最高的软件_不用写采集规则也可以轻松采集网站文章,揭秘一款明泽文章采集软件的工作原理...

一直以来&#xff0c;大家都在用各种各样的采集器或网站自带的采集功能&#xff0c;如织梦采集侠、火车头采集器、八爪鱼采集器等&#xff0c;这些采集软件都有一个共同的特点&#xff0c;就是要编写采集规则才能采集到文章&#xff0c;这个技术性的问题&#xff0c;对于新手来…

如何设计网站权限系统(转载)

作者&#xff1a;Vance链接&#xff1a;https://www.zhihu.com/question/20313385/answer/118095995来源&#xff1a;知乎著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 后台产品狗&#xff0c;之前踩过权限控制系统的大坑。 做完项目整体复…

不错的学习网站

2019独角兽企业重金招聘Python工程师标准>>> 百度&#xff1a; http://naotu.baidu.com/ http://fis.baidu.com/ http://fex.baidu.com/ https://github.com/fex-team/fex-edu http://fex.baidu.com/blog/2014/05/build-performance-monitor-in-7-days/ http://www.…

搜索引擎提交工具_钦州SEO优化_SEO工具常用的有哪些大盘点,做SEO优化不再累...

发布时间:2020-11-06 08:11:48现在的搜索引擎中&#xff0c;已经有大量的或免费&#xff0c;或付费的seo工具&#xff0c;总的来讲&#xff0c;可以分为几个大类&#xff0c;包括但不限于网站管理员工具&#xff0c;外链查询工具&#xff0c;seo综合查询工具&#xff0c;关键词…

如何使用Apache的ab工具进行网站性能测试

Apache服务器自带了ab压力测试工具&#xff0c;可以用来测试网站性能&#xff0c;使用简单方便。 工具/原料 Apache 方法/步骤 打开Apache服务器的安装路径&#xff0c;在bin目录中有一个ab.exe的可执行程序&#xff0c;就是我们要介绍的压力测试工具。 在Windows系统的命令行下…

网站服务器宕机,B站服务器宕机 股价短线走低冲上热搜 官方回复称因机房故障...

中华网财经7月14日讯&#xff0c;昨日晚间&#xff0c;哔哩哔哩弹幕网(简称“B站”)B站网页出现访问故障&#xff0c;客户端、网页版打开均无法加载内容。#B站崩了#话题登上微博热搜。多位网友表示&#xff0c;自己的B站已加载不出内容。凌晨2点20分&#xff0c;B站在微博发布声…

SharePoint 2013 新建网站集图解

SharePoint 2013 新建网站集图解 原文:SharePoint 2013 新建网站集图解前言&#xff1a;接触SharePoint的人可能是越来越多&#xff0c;但是很多人一接触就很迷茫&#xff0c;在技术群里问如何新建网站集&#xff0c;这样一篇图解&#xff0c;帮助新手学习在搭建好SharePoint环…

WordPress设计bug+WooCommerce漏洞导致网站存在被劫持风险

WordPress权限系统插件的设计缺陷和WooCommerce&#xff08;流行电子商务插件&#xff09;中的文件删除漏洞可允许***者获得对WordPress网站的完全控制权。Automattic公司推出的WooCommerce是一个很受欢迎的WordPress插件&#xff0c;它可以添加电子商务功能&#xff0c;这样网…