curl网站开发指南

news/2024/5/18 14:41:47/文章来源:https://blog.csdn.net/weixin_33754065/article/details/94466096

原文链接:http://www.ruanyifeng.com/blog/2011/09/curl.html

作者: 阮一峰

日期: 2011年9月 4日


 

我一向以为,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/catmelo/archive/2013/02/16/2913658.html

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

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

相关文章

java抓取并保存图片_利用JAVA抓取网站的所有图片并保存于本地

由于今天我要保存一个网页上的所有图片并做一个ppt&#xff0c;但是这个网页比较蛋疼&#xff0c;是微信上的一个类似于动画的东西&#xff0c;所以没法保存整个网页然后直接取照片&#xff0c;所以我采用java写了一个程序&#xff0c;采用类似于网络爬虫的思路把照片的抓下来。…

网站黑色字体php,字体颜色怎么变成黑色

字体颜色变成黑色的方法&#xff1a;首先打开Word文档窗口&#xff0c;选中需要改变字体颜色的文本块&#xff1b;然后在“开始”功能区的“字体”分组中&#xff0c;单击“字体颜色”下拉三角按钮&#xff1b;接着打开字体颜色面板&#xff1b;最后在“主题颜色”中选择“黑色…

移动网站设计与开发的碎碎念

2019独角兽企业重金招聘Python工程师标准>>> 移动开发的快速发展让移动用户使用移动设备变得更容易。人们通过使用移动设备可以很容易地访问移动网页。根据最近的一项研究&#xff0c;超过6300万的美国人通过移动设备访问不同的移动网站&#xff0c;其数量预计到201…

asp抓取网页某个标签内的_必须要了解SEO常用标签,你都知道几个?

很多人将SEO看作一份非常简单的工作&#xff0c;认为只需要更新一下网站内容&#xff0c;发发外链就可以了。殊不知&#xff0c;你之所以做不好这份工作&#xff0c;就是因为如此。SEO其实是一个比较复杂且长期的过程&#xff0c;涉及的方面很多&#xff0c;需要掌握的知识也不…

Project Server 2013新手入门 (一)为PWA添加用户并分享网站

之前做过Project server 2013的很多测试&#xff0c;一直没发上来。现在终于想着能写点自己会的东西&#xff0c;都比较简单&#xff0c;我也是新手。之前测试的文档我会陆续的发上来&#xff0c;供新人参考&#xff0c;有不懂的&#xff0c;大家也可一起讨论。我这里就不先写什…

一键部署网站php源码,如何轻松建站?站点一键部署搭建(详细教程)

来越多的人选择个人建站&#xff0c;个人站长虽然门槛很低&#xff0c;但是有些朋友觉得Linux服务器各种复杂的命令脚本让自己没法搭建环境。今天就给大家推荐一款使用方便、功能强大的快速建站工具——云帮手&#xff0c;支持 Linux 与 Windows 系统&#xff0c;可一键配置搭建…

多媒体开发之---一个破解版的迅雷云点播网站

国庆放假后&#xff0c;周六加一天班 &#xff0c;周日本来是搞学习的&#xff0c;后面看到&#xff0c;最近比较火的&#xff0c;我有比较喜欢的喜剧 导演宁浩 &#xff0c;就骨粉搜搜&#xff0c;居然搜到了资源&#xff0c;没得&#xff0c;资源是比较多&#xff0c;有什么吉…

网站开发笔记【四】css hack技术

1.如何让文字居中显示 类型 单行文字单行文字可以设置line-height和height一样。 多行文字&#xff08;高度不固定&#xff09; 可以设置padding在外层的包容容器中。 如&#xff1a;设置padding&#xff1a;25px&#xff1b;这样高度就会显示在居中。 多行文字&#xff08…

java服务端性能优化_[读书笔记] 大型网站性能优化实战-服务端性能优化

1 QPS (吞吐量)1.1 RT(ResponseTime&#xff0c;响应时间)服务器端 RT网络开销 ≈ 客户端 RT。对于网络来讲&#xff0c;常见的优化方式有 CDN、 AND和专线&#xff0c; 分别适用于不同的场景。服务器端 RT Thread CPU Time Thread Wait Time。单线程 QPS 1000ms / RT。多线…

java开源 mooc,GitHub - bo5509/TinyMooc: 轻量级Java平台在线幕课学习网站

萌课(tinymooc)是什么?tinymooc 中文名萌课,是一个轻量级Web网站。它拥有简洁的代码,优雅的设计。萌课网目前打算实现微课程的点播和直播服务&#xff0c;依托于腾讯云强大的云计算服务给用户带去更好的微课学习体验。如果你喜欢,欢迎 Star and Fork, 谢谢!特性轻量级。代码简…

PHP-购物网站开发设计(一)

2015-07-6 开始使用PHP完成简单购物网站的设计&#xff0c;首先要选择合适的软件平台&#xff0c;所以今天先记录平台的选择与搭建&#xff1a; 我选择使用Apache24 PHP 5.6 MySQL 开发环境完成PHP网站开发&#xff0c;软件开发IDE使用PhpStorm8.0.3。 平台搭建过程如下&…

简单网站新闻发布系统

写这篇文章的时候首先要向bben_h 和jdxx表示感谢&#xff0c;是bben_h提出了C#中字符替换这个问题&#xff0c;jdxx很好的解决了这个问题&#xff0c;同时也使我想起以前做的一些程序&#xff08;简单网站新闻发布系统&#xff09;&#xff0c;现在就把它奉献给大家&#xff0c…

VS2005在开发网站时的一个编译BUG

这两天我在用C#做一个WEB网站&#xff0c;用的是VS2005&#xff0c;碰到一个编译问题&#xff0c;害我查了很长时间&#xff0c;终于找到原因了-_- 放上来&#xff0c;如果有碰到相同问题的兄弟正好看看。现象&#xff1a;编译时&#xff0c;当页面对应的cs文件有错误时&#…

中小型企业网络规划设计方案_中小型企业做品牌网络营销推广时要注意什么问题?【seo专吧】...

许多中小型企业想要网络营销&#xff0c;但是想开展起来就总有困难&#xff1a;不知道怎么宣传、不知道宣传什么、不知道用什么渠道宣传&#xff0c;今天&#xff0c;全网天下的徐国祥就跟大家讲讲。1、前期准备工作要充足万事开头难&#xff0c;所以事前要先分析考虑企业的自我…

环球企业家《信息网站的未来》

环球企业家原文标题&#xff1a;我知道明年夏天你做了什么原文作者&#xff1a;倪妮原文地址&#xff1a;《信息网站的未来》是网易科技刊登时的标题。注&#xff1a;以下仅截取提及玩聚网的部分文字。作者&#xff1a;倪妮 出处&#xff1a;《环球企业家》2009年2月20号刊 第3…

细谈eclipse拓展网站项目集锦----my note

2019独角兽企业重金招聘Python工程师标准>>> 使用eclipse有一些时间啦&#xff0c;也试着开发一些网站project&#xff0c;不是很熟&#xff0c;也用zend studio&#xff0c;后放弃啦。 我的一些经验 1&#xff0c; 使用eclipse开发jsp网站项目&#xff0c;入门篇 …

vue打包成app方法_如何给手机网站封壳快速打包封装成APP?

如果你一个手机站&#xff0c;想给网站加个壳&#xff0c;封装成一个APP。打开显示的还是网站&#xff0c;就是多了启动页面&#xff0c;可以的话能在加上加载页面&#xff0c;标签导航栏&#xff0c;可以实现吗&#xff1f;我的回答是肯定的&#xff0c;现在APP的开发成本很高…

gorm preload 搜索_上海网站SEO优化外包服务公司,百度搜索优化外包服务

原标题&#xff1a;上海网站SEO优化外包服务公司&#xff0c;百度搜索优化外包服务SEO&#xff0c;是利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名。目的是让其在行业内占据领先地位&#xff0c;获得品牌收益。seo搜索优化具体长期稳定流量&#xff0c;推广费用极低的…

网站是不是php是什么意思,php网站是什么意思?

首先你要先了解PHP是什么意思&#xff1a;通俗讲PHP是一个脚本语言。PHP&#xff0c;是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。它是一种在服务器端执行的&#xff0c;被广泛应用的开放源代码的多用途脚本语言&#xff0c;它可嵌入到 HTML中。语言的风格有…

织梦手机端html不适配,织梦DedeCMS手机wap网站图片不自适应解决办法

在安装调试跟版网手机版网站的时候&#xff0c;发现一个问题&#xff0c;图片无法很好的适应屏幕&#xff0c;宽度可以与屏幕同宽&#xff0c;而高度却没有按比例调整&#xff0c;导致图片看起来像被挤扁了一样&#xff0c;为什么会这样呢&#xff1f;一般为了要达到图片自适应…