一、 了解HTTP/HTTPS
1航唆、 HTTP
構(gòu)建于TCP/IP協(xié)議
之上胀蛮,默認端口號是80
2、 HTTP
主要特點:
①無連接(限制每次連接只處理一個請求糯钙。服務(wù)器處理完客戶的請求粪狼,并收到客戶的應(yīng)答后,即斷開連接任岸。采用這種方式可以節(jié)省傳輸時間再榄。)
②無狀態(tài)(無狀態(tài)是指協(xié)議對于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息享潜,則它必須重傳困鸥,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方面剑按,在服務(wù)器不需要先前信息時它的應(yīng)答就較快疾就。)
3、 HTTP請求
分為三部分:
①請求行
艺蝴、②消息報頭
猬腰、③請求正文
1)、請求行示例:
方法
URL
HTTP版本
2)猜敢、消息報頭含義:
Date:
創(chuàng)建報文時間姑荷。
Connection:
連接的管理。
Cache-Control:
緩存的控制缩擂。
Transfer-Encoding:
報文主體的傳輸編碼方式鼠冕。
Host:
請求資源所在服務(wù)器。
Accept:
可處理的媒體類型撇叁。
Accept-Charset:
可接收的字符集供鸠。
Accept-Encoding:
可接受的內(nèi)容編碼。
Accept-Language:
可接受的自然語言陨闹。
Accept-Ranges:
可接受的字節(jié)范圍楞捂。
Location:
令客戶端重新定向到的URI。
Server:
HTTP服務(wù)器的安裝信息趋厉。
Allow:
資源可支持的HTTP方法寨闹。
Content-Type:
實體主類的類型。
Content-Encoding:
實體主體適用的編碼方式君账。
Content-Language:
實體主體的自然語言繁堡。
Content-Length:
實體主體的的字節(jié)數(shù)。
Content-Range:
實體主體的位置范圍,一般用于發(fā)出部分請求時使用椭蹄。
User-Agent:
發(fā)出請求的用戶信息闻牡。
Referer:
客戶端指定請求uri的源資源地址。
3)绳矩、請求正文示例:
username=cuipengyu&password=cuipengyu
4)罩润、返回狀態(tài)碼
1xx:
指示信息--表示請求已接收,繼續(xù)處理
2xx:
成功--表示請求已被成功接收翼馆、理解割以、接受
3xx:
重定向--要完成請求必須進行更進一步的操作
4xx:
客戶端錯誤--請求有語法錯誤或請求無法實現(xiàn)
5xx:
服務(wù)器端錯誤--服務(wù)器未能實現(xiàn)合法的請求
常見的狀態(tài)碼有如下幾種:
200 OK
客戶端請求成功
301 Moved Permanently
請求永久重定向
302 Moved Temporarily
請求臨時重定向
304 Not Modified
文件未修改,可以直接使用緩存的文件应媚。
400 Bad Request
由于客戶端請求有語法錯誤严沥,不能被服務(wù)器所理解。
401 Unauthorized
請求未經(jīng)授權(quán)中姜。這個狀態(tài)代碼必須和WWW-Authenticate報頭域一起使用
403 Forbidden
服務(wù)器收到請求消玄,但是拒絕提供服務(wù)。服務(wù)器通常會在響應(yīng)正文中給出不提供服務(wù)的原因
404 Not Found
請求的資源不存在扎筒,例如莱找,輸入了錯誤的URL
500 Internal Server Error
服務(wù)器發(fā)生不可預(yù)期的錯誤酬姆,導(dǎo)致無法完成客戶端的請求嗜桌。
503 Service Unavailable
服務(wù)器當前不能夠處理客戶端的請求,在一段時間之后辞色,服務(wù)器可能會恢復(fù)正常骨宠。
4、常用的HTTP請求方法與區(qū)別
1相满、常用方法
GET:
用于請求訪問已經(jīng)被URI(統(tǒng)一資源標識符)識別的資源层亿,可以通過URL傳參給服務(wù)器。
POST:
用于傳輸信息給服務(wù)器立美,主要功能與GET方法類似匿又,但一般推薦使用POST方式。
PUT:
傳輸文件建蹄,報文主體中包含文件內(nèi)容碌更,保存到對應(yīng)URI位置。
HEAD:
獲得報文首部洞慎,與GET方法類似痛单,只是不返回報文主體,一般用于驗證URI是否有效劲腿。
DELETE:
刪除文件旭绒,與PUT方法相反,刪除對應(yīng)URI位置的文件。
OPTIONS:
查詢相應(yīng)URI支持的HTTP方法挥吵。
2重父、GET方法與POST方法的區(qū)別
1):get重點在從服務(wù)器上獲取資源,post重點在向服務(wù)器發(fā)送數(shù)據(jù)忽匈;
2):get傳輸數(shù)據(jù)是通過URL請求坪郭,以(key= value)的形式,置于URL后脉幢,并用"?"連接歪沃,多個請求數(shù)據(jù)間用"&"連接,這個過程用戶是可見的嫌松;post傳輸數(shù)據(jù)通過Http的post機制沪曙,將字段與對應(yīng)值封存在請求實體中發(fā)送給服務(wù)器,這個過程對用戶是不可見的萎羔;
3):Get傳輸?shù)臄?shù)據(jù)量小液走,因為受URL長度限制,但效率較高贾陷;Post可以傳輸大量數(shù)據(jù)缘眶,所以上傳文件時只能用Post方式;
4):get是不安全的髓废,因為URL是可見的巷懈,可能會泄露私密信息,如密碼等慌洪;post較get安全性較高顶燕;
5):get方式只能支持ASCII字符,向服務(wù)器傳的中文字符可能會亂碼冈爹。post支持標準字符集涌攻,可以正確傳遞中文字符。
3频伤、HTTP和HTTPS的區(qū)別
HTTPHTTPS (基于安全套接字層的超文本傳輸協(xié)議 或者是 HTTP over SSL) 是一個 Netscape 開發(fā)的 Web 協(xié)議恳谎。HTTPS的安全基礎(chǔ)是SSL。
①HTTP 的 URL 以 http:// 開頭憋肖,而 HTTPS 的 URL 以 https:// 開頭
②HTTP 是不安全的因痛,而 HTTPS 是安全的
③HTTP 標準端口是 80 ,而 HTTPS 的標準端口是 443
④在 OSI 網(wǎng)絡(luò)模型中瞬哼,HTTP 工作于應(yīng)用層婚肆,而 HTTPS 工作在傳輸層
⑤HTTP 無需加密,而 HTTPS 對傳輸?shù)臄?shù)據(jù)進行加密
⑥HTTP 無需證書坐慰,而 HTTPS 需要認證證書