linux curl h 命令,Linux curl命令http cookie详解
Http Cookie在Http協議中是非常實用的功能、可以保留網站的一些會話信息,方便用戶下次再次來到本網站時使用;如在cookie中記錄用戶的性別和姓氏、下次用戶再次到來,即使未登錄,也可以根據獲取到的cookie顯示“歡迎X先生/女士再次光臨本站”類似的歡迎標語;也可以在cookie中記錄用戶的用戶名,下次用戶登陸時就不在需要輸入用戶名,提高便捷度。
一、Linux curl命令Cookie的接收:
1、cookie接收原理: 在介紹接收cookie之前,先來看看cookie是從http 服務器怎么發送過來的。我們先在站點根目錄下寫一個寫cookie的腳本“test.php”,內容一下:<?php
// 性別: 2(女);有效期1年后;只對aiezu.com有效
setcookie("sex", 2, time()+3600*24*365, '', 'aiezu.com');
// 姓氏: 劉;有效期1年后;只對aiezu.com有效
setcookie("surname", '劉', time()+3600*24*365, '', 'aiezu.com'); 然后運行“curl -I http://aiezu.com/test.php”命令,看到的http響應頭如下:
可以看出,http協議是通過http頭將cookie信息發送給瀏覽器的,其中漢字是經過URL Encode的。
2、linux curl命令接收cookie(-c): curl命令可以使用"-c"或者"--cookie-jar"選項將http服務器發送過來的cookie保存到指定文件或者輸出;更多的linux curl命令參數介紹請參考:Linux curl命令詳解頁面介紹;這里我們將cookie保存到"cookie.txt"文件。[root@aiezu.com ~]# curl --cookie-jar cookie.txt http://aiezu.com/test.php
[root@aiezu.com ~]# cat cookie.txt
# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.
.aiezu.comTRUE/FALSE1512612268sex2
.aiezu.comTRUE/FALSE1512612268surname%E5%88%98
二、Linux curl命令發送Cookie:
1、cookie發送原理和從cookie文件中發送: 在介紹發送cookie之前,這次來看看cookie是怎么發送到http 服務器的。先將站點根目錄下的"test.php"改成如下,內容就簡單的一行,用于輸出http服務器接收到的cookie數組內容:<?php print_r($_COOKIE); 然后使用linux curl命令的"-b"參數,發送我們在第一步保存到文件的cookie,再加一個“-v”參數來顯示詳細信息:[root@aiezu.com ~]# curl -b @cookie.txt http://aiezu.com/test.php -v
* About to connect() to aiezu.com port 80 (#0)
* Trying 120.26.62.49...
* Connected to aiezu.com (120.26.62.49) port 80 (#0)
> GET /test.php HTTP/1.1
> User-Agent: curl/7.29.0
> Host: aiezu.com
> Accept: */*
> Cookie: surname=%E5%88%98; sex=2
>
< HTTP/1.1 200 OK
< Date: Wed, 07 Dec 2016 02:33:28 GMT
< Server: Apache
< Cache-Control: max-age=315360000
< Expires: Sat, 05 Dec 2026 02:33:28 GMT
< Vary: Accept-Encoding
< Content-Length: 46
< Content-Type: text/html; charset=utf-8
<
Array
(
[surname] => 劉
[sex] => 2
)
* Connection #0 to host aiezu.com left intact 在上面信息第9行http請求頭中看到了我們發送cookie的key/value,可見cookie是通過http請求頭發送到http服務器的。那為什么只發送key/value,沒有發送有效時間和有效域名呢?因為時間、域名判斷cookie是否發送的判斷條件,只有當某一條cookie屬于此域名、并且cookie還在有效時間內,此條cookie才會發送;判斷完后,時間和域名就沒發送的必要了。
2、linux curl命令使用"-b"、"--cookie"參數直接發送cookiekey/value對: linux curl命令可以使用"-c"或者“--cookie”參數直接發送cookie鍵值對,兩個參數的意義相同:[root@aiezu.com ~]# curl -b "uid=999;sex=2" http://aiezu.com/test.php
Array
(
[uid] => 999
[sex] => 2
)
3、linux curl命令使用"-H"參數發送cookie: 既然cookie是通過http請求頭發送的,當然可以使用"-H"參數來為http請求頭添加cookie鍵值來發送cookie:[root@aiezu.com ~]# curl -H "Cookie: uid=999;sex=2" --cookie a=9 http://aiezu.com/test.php
Array
(
[uid] => 999
[sex] => 2
)
三、附錄:
總結
以上是生活随笔為你收集整理的linux curl h 命令,Linux curl命令http cookie详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 根据输入的正整数y所代表的年份,计算输出
- 下一篇: Linux系统中curl命令用法详解