前言
今天調(diào)試的時(shí)候用到了curl,所以這周就簡(jiǎn)單介紹一下curl的用法。
curl一般用來發(fā)送http請(qǐng)求,進(jìn)行web調(diào)試,但是它還有更強(qiáng)大的功能。
--silent
curl默認(rèn)是將下載文件輸出到stdout,將進(jìn)度信息輸出到stderr。使用--silent可以不顯示進(jìn)度信息。將下載內(nèi)容寫入文件
使用-O可以將下載的數(shù)據(jù)寫入到文件
-o:將文件保存為命令行中指定的文件名的文件中
-O:使用URL中默認(rèn)的文件名保存文件到本地斷點(diǎn)續(xù)傳
使用-C可以指定本次下載的偏移量,即只下載某個(gè)點(diǎn)之后的數(shù)據(jù),其中偏移量是以字節(jié)為單位的整數(shù)。如果想讓curl自動(dòng)推斷出正確的續(xù)傳位置,可以使用-C -打印包頭
通過-I或者-head可以只打印出HTTP頭部信息設(shè)置cookie
使用--cookie或者-b "cookie;"/filename 選項(xiàng)來指定cookie,多個(gè)cookie使用分號(hào)分隔存儲(chǔ)cookie
使用--cookie-jar可以將cookie保存到一個(gè)文件中網(wǎng)絡(luò)限速
使用--limit-rate限制curl的下載速度,其中使用k和m作為單位顯示詳細(xì)信息
使用-v或者--trace可以獲得更多連接的信息設(shè)置頭部信息
使用-H "string"來設(shè)置http頭的信息,可以使用多次設(shè)置請(qǐng)求方式
使用-X指定請(qǐng)求方式,常用的有POST,GET發(fā)送數(shù)據(jù)
-d "str=a&name=b",發(fā)送的數(shù)據(jù)中都是鍵值對(duì)的形式,key=value,多個(gè)鍵值對(duì)用&連接-
HTTP代理
代理其實(shí)就是一種介于客戶端和服務(wù)器之間的橋梁,它可以是客戶端,也可以是服務(wù)器。- 代理的作用
- 翻墻
對(duì)于直接訪問不了的資源,可以使用代理服務(wù)器,通過訪問代理服務(wù)器間接訪問資源服務(wù)器。從而不受限制影響。 - 匿名訪問
通過設(shè)置代理服務(wù)器,將自己的請(qǐng)求都集中到代理服務(wù)器,再在代理服務(wù)器上對(duì)包的結(jié)構(gòu)更改,隱藏一些身份或者位置信息。 - 代理緩存
代理服務(wù)器可以緩存資源服務(wù)器上的資源,從而減輕資源服務(wù)器的壓力,提高瀏覽的速度。 - 隱藏真實(shí)服務(wù)器
為了保護(hù)真實(shí)的服務(wù)器信息不被泄露,通過設(shè)置代理服務(wù)器轉(zhuǎn)發(fā)請(qǐng)求進(jìn)行訪問。這樣對(duì)外暴露的就只有代理服務(wù)器,而保護(hù)了真實(shí)的資源服務(wù)器的信息。
- 翻墻
- 代理方式
- 正向代理
正向代理就是通過在客戶端設(shè)置,更改頭部信息等方式來指定使用的代理,也就是主動(dòng)的選擇代理。 - 反向代理
反向代理是指請(qǐng)求發(fā)起的時(shí)候,訪問的就是代理服務(wù)器,通過代理服務(wù)器的轉(zhuǎn)發(fā)來實(shí)現(xiàn)資源的訪問。nginx就是一種最常見的反向代理服務(wù)器。
- 代理的作用
-
HTTP協(xié)議
HTTP協(xié)議即超文本傳輸協(xié)議,它是一種通信協(xié)議,允許將超文本標(biāo)記語言(HTML)文檔從Web服務(wù)器傳送到客戶端的瀏覽器- 打開一個(gè)網(wǎng)頁可能需要發(fā)送多次請(qǐng)求
打開一個(gè)網(wǎng)頁,首先就是發(fā)送當(dāng)前的請(qǐng)求,然后得到返回的信息。在分析這些信息的時(shí)候,可能當(dāng)前頁面涉及到其他的一些信息,這時(shí)候?yàn)g覽器會(huì)再去請(qǐng)求這些信息,直到拿到所有需要的資源。 - 狀態(tài)碼
1XX 提示信息 - 表示請(qǐng)求已被成功接收,繼續(xù)處理
2XX 成功 - 表示請(qǐng)求已被成功接收,理解,接受
3XX 重定向 - 要完成請(qǐng)求必須進(jìn)行更進(jìn)一步的處理
4XX 客戶端錯(cuò)誤 - 請(qǐng)求有語法錯(cuò)誤或請(qǐng)求無法實(shí)現(xiàn)
5XX 服務(wù)器端錯(cuò)誤 - 服務(wù)器未能實(shí)現(xiàn)合法的請(qǐng)求 - cookie
cookie其實(shí)就是緩存在用戶本地的一個(gè)文件,其中包括少量用戶的信息,用來簡(jiǎn)化用戶的操作,以及方便用戶的使用。
如果cookie中保存了用戶的登錄信息,一旦這個(gè)cookie被其他人截取獲得,那么那個(gè)人就可以使用這個(gè)cookie冒充用戶登錄對(duì)應(yīng)的網(wǎng)站。
- 打開一個(gè)網(wǎng)頁可能需要發(fā)送多次請(qǐng)求