curl 查看 HTTP Header 响应头信息
1、curl -I 查看HTTP 响应头信息
curl -I https://proxy.mimvp.com
yg-mac:~ homer$ curl -I https://proxy.mimvp.com HTTP/1.1 200 OK Server: nginx Date: Thu, 31 May 2018 03:51:08 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive Vary: Accept-Encoding Set-Cookie: PHPSESSID=d4kf789gvurb10p7g5pcqd80o6; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Vary: proxys-bj
curl 请求不要缓存
curl
-H 'Cache-Control: no-cache'
-I https://proxy.mimvp.com
# curl -H 'Cache-Control: no-cache' -I https://proxy.mimvp.com HTTP/1.1 200 OK Server: nginx Date: Mon, 15 Oct 2018 08:50:31 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive Vary: Accept-Encoding Set-Cookie: PHPSESSID=62io4pihlkhomnrv37g8978pj5; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Vary: proxys-bj
说明:上面这种 curl 命令禁用缓存的格式,对于服务器或代理端有缓存的情况也是无效的
因此,我们可以想到另一种不要缓存的方式:请求动态网址,即每次请求的参数不同
例如:
curl "https://proxy.mimvp.com?foo123"
若需要每次请求参数不同,可以用动态的时间作为请求参数
curl "https://proxy.mimvp.com?
$(date +%s)
"
2、HTTP 响应头的信息
1) HTTP 返回码
- 1xx:client的请求server已经接收,正在处理
- 2xx:成功 表示 client请求,server端已经接收、理解并处理
- 3xx:client 请求被重定向其他的server【其他的URL】
- 4xx:表示client请求不正确,server不能识别
- 5xx:server端服务不正常
2) Cache-Control
web 站点对缓存的设置;
- no-cache:表示server 不允许client 设置缓存;client每次请求都需要请求后端的服务
- max-age:server设置页面的缓存时间;单位是秒 即:1个小时内此client再访问 www.mimvp.com 用刚才的缓存;不再重复访问后台服务器
- private must-revalidate
3) Connection
server 是否支持长连接;如果keep-alive 说明web的server 支持长连接。
但是TCP 的长连接是双向的;必须是client和server 都支持长连接;才可以建立长连接。
一般client 【浏览器】都是默认支持长连接;所以只要sever端支持长连接;就可以建立长连接。
3、curl 发送Get/Post 请求
1)get 请求
我们平时用的最多的就是curl 不加任何的参数,其实这样就是get请求;把参数都放在http://xx 后面
curl "https://proxy.mimvp.com/freesecret.php?proxy=in_hp&sort=&page=5"
2)post 请求
curl -d 'post_data=i_love_mimvp.com' https://proxy.mimvp.com/ip.php
或
curl -H "Content-Type:application/json" -X POST -d '{"post_data":"i_live_mimvp.com"}' 'https://proxy.mimvp.com/ip.php'
3)上传文件
curl -F 'csl=@/home/xxxx/xxx.csl' -F 'tag=xxx' -F 'category=full' "https://proxy.mimvp.com/demo/"
curl HTTP Header
对于"User-Agent", "Cookie", "Host"这类标准的HTTP头部字段,通常会有另外一种设置方法。
curl命令提供了特定的选项来对这些头部字段进行设置:
- -A (or --user-agent): 设置 "User-Agent" 字段.
- -b (or --cookie): 设置 "Cookie" 字段.
- -e (or --referer): 设置 "Referer" 字段.
例如,以下两个命令是等效的。这两个命令同样都对HTTP头的"User-Agent"字符串进行了更改。
$ curl -H "User-Agent: my browser" "https://proxy.mimvp.com/demo/" $ curl -A "my browser" "https://proxy.mimvp.com/demo/"
wget是另外一个类似于curl,可以用来获取URL的命令行工具。
wget也一样允许你使用一个自定义的HTTP头。
点击 这里 查看wget命令的详细信息。
1、GET
1)with JSON
curl -i -H "Accept: application/json" -H "Content-Type: application/json" https://proxy.mimvp.com/ip.php
2)with XML
curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET https://proxy.mimvp.com/ip.php
2、POST
1)For posting data
curl --data "param1=value1¶m2=value2" https://proxy.mimvp.com/ip.php
2)For file upload
curl --form "fileupload=@filename.txt" https://proxy.mimvp.com/ip.php
3)RESTful HTTP Post
curl -X POST -d @filename https://proxy.mimvp.com/ip.php
4)For logging into a site (auth)
curl -d "username=admin&password=admin&submit=Login" --dump-header headers https://proxy.mimvp.com/ip.php curl -L -b headers https://proxy.mimvp.com/ip.php
参考推荐:
Linux curl 命令模拟 POST/GET 请求 (推荐)
shell命令curl 检测代理是否可用 (推荐)
PHP 模拟POST提交2种方法 (推荐)
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2018-12-13 00:19:28
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!
不错顶一个
记录着 留着用