第一章:http概述
web客戶端與伺服器是如何通訊的,
表示web內容的資源來自何方,
web事務是怎樣工作的,
http通訊所使用的報文格式,
底層tcp網路傳輸,
不同的http協議
形式
解釋http會將請求引數用key1=val1&key2=val2的方式進行組織,並放到請求實體裡面,不支援檔案,一般用於表單提交
multipart/form-data
json是一種輕量級的資料格式,以「鍵-值」對的方式組織的資料,需要引數本身就是json格式的資料,引數會被直接放到請求實體裡,不進行任何處理。服務端/客戶端會按json格式解析資料(約定好的情況下)
方法解釋get
從伺服器向客戶端傳送命名資源
put將來自客戶端的資料儲存到乙個命名的伺服器資源中
delete
從伺服器刪除命名資源
post
將客戶端資料傳送到乙個伺服器閘道器應用程式
head
僅傳送命名資源響應中的http首部
狀態碼ok.文件正確返回
200ok.文件正確返回
302redirect(重定向)。到其他地方區獲取資源
404notfound(沒找到)。無法找到這個資源 組成
解釋起始行
報文的第一行就是起始行
首部字段
每個首部欄位都包含乙個名字和乙個值,兩者之間用冒號:來分隔;首部以乙個空行結束
主體空行之後就是可選的報文主體,主體可以包含任意的二進位制資料
13、web的結構元件:
第二章:url與資源
url語法
各種url元件的含義及其所做的工作
url編碼及字元規則
各種網際網路資訊系統常見的url方案
2、url語法:9部分構成的通用格式上
3、編碼機制:通過一種「轉義」表示法來表示不安全的字元,這種轉義表示法包含乙個百分號(%),後面跟著兩個表示字元ascii碼的十六進製制數 字元
ascii碼
示例url
~126(0x7e)
空格32(0x20
%37(0x25)
字元解釋%
保留作為編碼字元的轉義標誌
/保留作為路徑元件中分隔路徑段的定界符
.保留在路徑元件中使用
#保留作為分段定界符使用
?保留作為查詢字串定界符使用
;保留作為引數定界符使用
:保留作為方案、使用者/命令,以及主機/埠元件的定界符使用
$,+保留
@&=在某些方案的上下文中有特殊的含義,保留
{}^~
<>"
不安全,這些字元在url範圍之外通常是有意義的,比如在文件中對url自身進行定界,所以應該對其進行編碼
0x00-0x1f,0x7f 受限
這些十六進製制範圍內的字元都在us-ascii字符集的不可列印區間內
第三章:http報文
報文是如何流動的,
http報文的三個組成部分(起始行、首部和實體的主體部分),
請求和響應報文之間的區別,
請求報文支援的各種功能(方法),
和響應報文一起返回的各種狀態碼,
各種各樣的http首部都是用來做什麼的
2、報文由三部分組成:對報文描述的起始行,包含屬性的首部塊,以及可選的包含資料的主體部分
3、報文的語法:所有的http報文都可以分為兩類:請求報文和響應報文
4、起始行:所有的http報文都以乙個起始行作為開始。請求報文的起始行說明了要做些什麼,響應報文的起始行說明發生了什麼
5、請求行:請求報文的起始行,或稱為請求行,包含了乙個方法和乙個請求url以及http版本
6、響應行:響應報文的起始行稱為響應行,響應報文承載了狀態資訊和操作產生的所有結果資料,將其返回給客戶端。包含了http版本、數字狀態碼、以及描述操作狀態的文字形式的原因短語;所有這些欄位都由空格符進行分隔
7、方法:
8、狀態碼:方法是用來告訴伺服器做什麼事情的,狀態碼則用來告訴客戶端,發生了什麼事情
9、常見的狀態碼:
10、原因短語:它為狀態碼提供了文字形式的解釋
11、 版本號:說明了應用程式支援的最高http版本
12、首部:向請求和報文中新增了一些附加資訊,本質上說,它們只是一些名/值對的列表,語法:名字後面跟著冒號(?,然後跟上可選的空格,再跟上字段值,最後乙個crlf
13、http首部可以分為以下幾類,通用首部:既可以出現在請求報文中,也可以出現在響應報文中
14、狀態碼:
15、100~199:資訊狀態碼,100 continue 說明收到了請求的初始部分,請客戶端繼續。傳送了這個狀態碼之後,伺服器再收到請求之後必須進行響應
16、200~299:成功狀態碼,200 ok 請求沒問題,實體的主體部分包含了所有請求的資源
17、300~399:重定向狀態碼,要麼告知客戶端使用替代位置來訪問它們所感興趣的資源,要麼就提供乙個替代的響應而不是資源的內容
18、400~499:客戶端錯誤狀態碼,有時候客戶端會傳送一些伺服器無法處理的東西,比如格式錯誤的請求報文,或者最常見的是404,表明伺服器對我們請求的資源一無所知
HTTP 基礎知識
具體去看原文 你應該知道的http基礎知識 1.http請求報文格式 http的請求報文分為三個部分請求行 請求頭和請求體。1.1 請求行 請求行 request line 分為三個部分 請求方法 請求位址和協議及版本,以crlf r n 結束。http 1.1定義的請求方法有8中 get post...
HTTP 基礎知識
標籤位於文件的頭部,不包含任何內容。標籤的屬性定義了與文件相關聯的名稱 值對。標籤永遠位於 head 元素內部。http equiv 屬性為名稱 值對提供了名稱。並指示伺服器在傳送實際的文件之前先在要傳送給瀏覽器的 mime 文件頭部包含名稱 值對。當伺服器向瀏覽器傳送文件時,會先傳送許多名稱 值對...
HTTP基礎知識
get 用於請求訪問已經被uri 統一資源識別符號 識別的資源,可以通過url傳參給伺服器 post 用於傳輸資訊給伺服器,主要功能與get方法類似,但一般推薦使用post方式。put 傳輸檔案,報文主體中包含檔案內容,儲存到對應uri位置。head 獲得報文首部,與get方法類似,只是不返回報文主...