這里是ky233的主頁,歡迎光臨~https://blog.csdn.net/ky233?type=blog
目錄
一、認識URL
1.認識URL
2.urlencode和urldecode
二、HTTP協議格式
1.快速構建http請求和相應的報文格式
三、http demo
1.GET和POST
2.HTTP的狀態(tài)碼
3.http的特征
4.HTTP常見Header
5.Cookie和Set-cookie
應用層:就是程序員基于socket接口之上編寫的具體邏輯,做的很多工作,都是和文本處理有關的!——協議分析與處理
所以http協議,一定會具有大量的文本分析和協議處理!
一、認識URL
1.認識URL
平時我們俗稱的 "網址" 其實就是說的 URL
我們平時上網無非就是我們想獲取或者上傳資源
一張圖片、一這段視頻,這些資源在沒有被拿到的時候是在對應的Linux服務器上,在一個服務器上可能存在很多的文件資源,當我們請求資源拿到本的的時候,服務器會打開你要訪問的文件,讀取該文件通過網絡發(fā)送到客戶端
所以我們要打開這個文件先要找到它,這時候就用到路徑來標識!
所有的資源:全球范圍內,只要找到它的url就能訪問到該資源,也成為www,萬維網
2.urlencode和urldecode
像 / ? : 等這樣的字符, 已經被url當做特殊意義理解了. 因此這些字符不能隨意出現. 比如, 某個參數中需要帶有這些特殊字符, 就必須先對特殊字符進行轉義。
?轉義的規(guī)則如下: 將需要轉碼的字符轉為16進制,然后從右到左,取4位(不足4位直接處理),每2位做一位,前面加上%,編碼成%XY格式
例如:
二、HTTP協議格式
在雙方通信之前已經進行了三次握手的過程
1.快速構建http請求和相應的報文格式
單純在報文的角度,http可以是基于行的文本協議!
如何看待:在三次握手之后,這不就是客戶端在給服務器發(fā)送大量的字節(jié)流嗎?
所以我們可以看成是線性結構
如何看待,也是看成線性結構!
其中請求行中的協議版本是客戶端告訴服務端,客戶端用的http版本,而響應行中的協議版本是服務端告訴客戶端,服務端用的http版本
http是如何區(qū)分報頭和有效載荷的呢?
有效載荷:正文部分的內容
答案很簡單,是通過空行\(zhòng)r\n的方式來區(qū)分的
也就是說我們一定能把報頭讀完,所以接下來讀的就是正文,那么我們如何得知正文的大小呢?
其中報頭當中就包含了一種屬性Cotent-Length,后面跟的就是正文的長度
三、http demo
1.GET和POST
我們平時上網行為分為兩種,從服務器拿資源,以及上傳資源
其中拿資源一般GET,上傳資源兩者都可
GET:是通過URL向服務端傳參的,會回顯用戶的私密信息,不夠私密
POST:是通過http的正文部分提交參數的,不會回顯,在私密性方面是有保證的
注意:私密性不是安全性
2.HTTP的狀態(tài)碼
永久重定向301和臨時重定向302、307
永久重定向:影響用戶后續(xù)的請求策略如看付費電影,買一次直接就可以看了
臨時重定向:不影響用戶后續(xù)的請求策略
也就是說,客戶端發(fā)送了一個請求,服務端返回錯誤碼302原因是found,并且會告訴一個新的地址,客戶端在向新的地址發(fā)送請求
3.http的特征
1.簡單快速
2.無連接:雖然底層是TCP但是連接時TCP的事情和我http有什么關系
3.無狀態(tài):協議是不會記錄你的訪問記錄之類的,但是登錄網站會記錄,這是因為因為業(yè)務邏輯來管的
4.HTTP常見Header
- Content-Type: 數據類型(text/html等)
- Content-Length: Body的長度
- Host: 客戶端告知服務器, 所請求的資源是在哪個主機的哪個端口上;
- User-Agent: 聲明用戶的操作系統(tǒng)和瀏覽器版本信息;
- referer: 當前頁面是從哪個頁面跳轉過來的;
- location: 搭配3xx狀態(tài)碼使用, 告訴客戶端接下來要去哪里訪問;
- Cookie: 用于在客戶端存儲少量信息. 通常用于實現會話(session)的功能;
5.Cookie和Set-cookie
Cookie簡單來說就是用來保存用戶的私密信息的
但是這種不安全,有風險,所以現如今我們在登陸或者注冊的時候生成一個session id,在服務端保存了私密信息,這樣客戶端發(fā)送這個id就可以自動登錄了
Set-cookie是寫在代碼中的,設置之后就可以在http的屬性中看到cookie的內容
5.短鏈接與長連接
短鏈接就是指一次只傳輸一個文件如一張圖片,長連接則是一次性傳輸多個文件文章來源:http://www.zghlxwxcb.cn/news/detail-838463.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-838463.html
到了這里,關于Linux網絡基礎2之http的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!