創作不易,來了的客官點點關注,收藏,訂閱一鍵三連?😜

前言
運維必備——計算機網路,我是一名即將畢業的大學生,超超,計算機網路是計算機行業的入門基礎,超說網路是筆者對于計算機網路知識的梳理總結,和超超一起學習計算機網路,搞定網路知識,秋招拿下理想offer!
系列文章
超說網路NO.4 | 深入了解應用層原理(中科大 鄭烇)
超說網路NO.3 | 深入了解網路的分層體系結構
超說網路NO.2 | 深入了解計算機網路:網路邊緣、網路核心、接入網和物理媒體
概述
超說網路NO.5 | 深入了解應用層Web服務和HTTP、HTTPs協議,以及面試常考題!
目錄
前言
系列文章
概述
web和HTTP的一些術語
HTTP:超文本傳輸協議
HTTP是什么?
HTTP的優缺點
HTTP屬于客戶/服務器模式
基于TCP連接的HTTP
非持久與持久HTTP
非持久HTTP
持久HTTP
HTTP的版本
HTTP/0.9
HTTP/1.0
HTTP/1.1
HTTP/2.0
HTTP/1.1與HTTP/1.0的區別
HTTP/2有什么不足?
HTTP常見欄位
HTTP請求報文
HTTP請求報文
HTTP請求報文通用格式
提交表單的輸入:Post方式與URL方式
Post方式
URL方式
HTTP的方法型別
HTTP的回應報文
回應報文格式
狀體碼
Cookies的用處與維護
Cookies與隱私
Web快取
web快取目標
使用Web快取的優勢
快取的實體
條件GET方法
面試常考題
01.HTTP與HTTPs
02.HTTPS 是如何解決上HTTP的不安全性?
03.數字證書和 CA 機構
04.GET 和 POST 的區別
05.GET 和 POST ?法都是安全和冪等的嗎?
web和HTTP的一些術語
Web頁:由一些物件組成,物件可以是HTML檔案、JPEG影像、Java小程式、聲音剪輯檔案等,Web頁含有一個基本的HTML檔案,該基本HTML檔案又包含若干物件的參考(鏈接),通過URL對每個物件進行參考,
URL格式:訪問協議,用戶名,口令字,埠等,

HTTP:超文本傳輸協議
HTTP是什么?
HTTP: HTTP 是超?本傳輸協議,也就是HyperText Transfer Protocol,是一個基于請求與回應,無狀態的,Web服務的應用層的協議,常基于TCP傳輸資料,互聯網上應用最為廣泛的一種網路協議,所有的WWW檔案都必須遵守這個標準,
HTTP超?本協議傳輸,它可以拆成三個部分:超文本、傳輸、協議,
協議:HTTP 是?個?在計算機世界?的協議,它使?計算機能夠理解的語?確?了?種計算機之間交流通信的規范(兩個以上的參與者),以及相關的各種控制和錯誤處理?式(?為約定和規范),
傳輸:就是把?堆東?從 A 點搬到 B 點,或者從 B 點 搬到 A 點,別輕視了這個簡單的動作,它?少包含兩項重要的資訊,HTTP 協議是?個雙向協議,
超文本:HTTP傳輸的內容是超?本,它就是超越了普通?本的?本,它是?字、圖?、視頻等的混合體,最關鍵有超鏈接,能從?個超?本跳轉到另外?個超?本,
HTTP的優缺點
HTTP優點
HTTP的主要優點是簡單、靈活、易于拓展、應該廣泛以及跨平臺,
1. 簡單
HTTP 基本的報文格式就是 header + body ,頭部資訊也是 key-value 簡單?本的形式,
2. 靈活和易于擴展
HTTP協議?的各類請求?法、URI/URL、狀態碼、頭欄位等每個組成要求都沒有被固定死,都允許開發?員?定義和擴充,同時 HTTP 由于是?作在應?層( OSI 第七層),則它下層可以隨意變化,
HTTPS 也就是在 HTTP所在的應用層與TCP所在的傳輸層之間增加了 SSL/TLS 安全傳輸層,HTTP/3 甚?把 TCP 層換成了基于 UDP 的QUIC,
3. 應用?泛和跨平臺
互聯?發展?今,HTTP 的應?范圍?常的?泛,HTTP 的應?遍地開花,同時天然具有跨平臺的優越性,
HTTP缺點
由于HTTP是無狀態、明文傳輸的因此資料不安全,
無狀態的優缺點
?狀態的好處,因為服務器不會去記憶 HTTP 的狀態,因此不需要額外的資源來記錄狀態資訊,這能減輕服務器的負擔,能夠把更多的 CPU 和記憶體用來對外提供服務,
?狀態的壞處,既然服務器沒有記憶能?,它在完成有關聯性的操作時會?常麻煩
HTTP 的安全問題,可以用HTTPS 的方式解決,也就是通過引? SSL/TLS 層,使得在安全上達到了極致,
HTTP屬于客戶/服務器模式
客戶: 請求、接收和顯示Web物件的瀏覽器;
服務器: 對請求進行回應,發送物件的Web服務器,

基于TCP連接的HTTP
1.客戶發起一個與服務器的 TCP連接 (建立套接字) , 埠號為 80
2.服務器接受客戶的TCP連接
3.在瀏覽器(HTTP客戶端) 與 Web服務器(HTTP服 務器 server)交換HTTP報文 (應用層協議報文)
4.TCP連接關閉
HTTP是無狀態的,即服務器并不維護關于客戶的任何資訊,
維護狀態的協議很復雜:
1.必須維護歷史資訊(狀態)
2.如果服務器/客戶端死機,它們的狀態資訊可能不一致, 但二者的資訊必須是一致,因此會需要重新連接
3.無狀態的服務器能夠支持更多的客戶端
非持久與持久HTTP
非持久HTTP
非持久HTTP,最多只有一個物件在,TCP連接上發送,下載多個物件需要多個TCP連接,HTTP/1.0使用非持久連接,
非持久鏈接:


回應時間模型
往返時間RTT(round-trip time):一個小的分組從客戶端到服務器,在回到客戶端的時間(傳輸時間忽略),
回應時間:一個RTT用來發起TCP連接,一個 RTT用來HTTP請求并等待HTTP回應
檔案傳輸時間共:2RTT+傳輸時間

非持久HTTP的缺點
時間長,每個物件要2個RTT;作業系統必須為每個TCP連接分配資源,但瀏覽器通常打開并行TCP連接,以獲取參考物件,
持久HTTP
持久HTTP,多個物件可以在一個(在客戶端和服務器之間的)TCP連接上傳輸,服務器在發送回應后,仍保持TCP連接,在相同客戶端和服務器之間的后續請求和回應報文通過相同的連接進行傳送,客戶端在遇到一個參考物件的時候,就可以盡快發送該物件的請求,HTTP/1.1 默認使用持久連接,
持久分為流水線和非流水線,
非流水方式的持久HTTP:客戶端只能在收到前一個回應后才能發出新的請求,每個參考物件花費一個RTT,
流水方式的持久HTTP:HTTP/1.1的默認模式,客戶端遇到一個參考物件就立即產生一個請求,所有參考(小)物件只花費一個RTT是可能的,
HTTP的版本
HTTP/0.9
只接受GET一種請求方法,沒有在通信中指定版本號,且不支持請求頭,由于該版本不支持POST方法,因此客戶端無法向服務器傳遞太多資訊,
HTTP/1.0
第一個在通信中指定的版本號,至今被廣泛采用,特別是在代理服務器中,
HTTP/1.1
當前版本號,持久連接被默認采用,并能很好地配合代理服務器作業,還支持以管道方式在同時發送多個請求,以便降低線路負載,提高傳輸速度,
但是HTTP/1.1仍有性能瓶頸,如
請求 / 回應頭部(Header)未經壓縮就發送,?部資訊越多延遲越?,只能壓縮 Body 的部分;
發送冗?的?部,每次互相發送相同的?部造成的浪費較多;
沒有請求優先級控制,服務器是按請求的順序回應的,如果服務器回應慢,會招致客戶端?直請求不到資料,也就是隊頭阻塞;
HTTP/2.0
HTTP/2 協議是基于 HTTPS 的,所以 HTTP/2 的安全性也是有保障的,
HTTP/2的改進:
1.頭部壓縮
HTTP/2 會壓縮頭(Header)如果你同時發出多個請求,他們的頭是?樣的或是相似的,那么,協議會幫你消除重復的部分, 這就是所謂的 HPACK 演算法:在客戶端和服務器同時維護?張頭資訊表,所有欄位都會存?這個表,?成?個索引號,以后就不發送同樣欄位了,只發送索引號,這樣就提?速度了,
2.?進制格式
HTTP/2 不再像 HTTP/1.1 ?的純?本形式的報?,?是全?采?了?進制格式,頭資訊和資料體都是?進制,并且統稱為幀(frame):頭資訊幀和資料幀,

3.資料流
HTTP/2 的資料包不是按順序發送的,同?個連接??連續的資料包,可能屬于不同的回應,因此,必須要對資料包做標記,指出它屬于哪個回應,每個請求或回應的所有資料包,稱為?個資料流( Stream ),每個資料流都標記著?個獨???的編號,其中規定客戶端發出的資料流編號為奇數, 服務器發出的資料流編號為偶數,
客戶端還可以指定資料流的優先級,優先級?的請求,服務器就先回應該請求,
4.多路復?
HTTP/2 是可以在?個連接中并發多個請求或回應,?不?按照順序??對應,移除了 HTTP/1.1 中的串?請求,不需要排隊等待,也就不會再出現隊頭阻塞問題,降低了延遲,?幅度提?了連接的利?率,
5. 服務器推送
HTTP/2 還在?定程度上改善了傳統的「請求 - 應答」?作模式,服務不再是被動地回應,也可以主動向客戶端發送訊息,
HTTP/1.1與HTTP/1.0的區別
1.persistent connection(持久連接)
HTTP/1.0:每對請求/ 回應都需要建立新的TCP連接,
HTTP/1.1:支持持久連接(默認),持久連接的特點是,只要任意?端沒有明確提出斷開連接,則保持 TCP 連接狀態,
2.Host域
HTTP/1.1在請求訊息頭多一個Host域;HTTP/1.0 則沒有這個域,建立TCP連接的時候已經指定了IP地址,而且默認一個IP地址只對應一個主機名,IP地址上只有一個host,
3.請求方法和狀態碼
HTTP1.1增加了OPTIONS, PUT, DELETE, TRACE, CONNECT這些Request方法,
HTTP/1.0中只定義了16個狀態回應碼,對錯誤或警告的提示不夠具體,HTTP/1.1引入了一個Warning頭域,增加對錯誤或警告資訊的描述,
在HTTP/1.1中新增了24個狀態回應碼,如409(Conflict)表示請求的資源與資源的當前狀態發生沖突;410(Gone)表示服務器上的某個資源被永久性的洗掉,
4.內容協商
為了滿足互聯網使用不同母語和字符集的用戶,一些網路資源有不同的語言版本(如中文版、英文版),
HTTP/1.0定義了內容協商 (content negotiation)的概念,也就是說客戶端可以告訴服務器自己可以接收以何種語言(或字符集)表示的資源,例如如果服務器不能明確 客戶端需要何種型別的資源,會回傳300(Multiple Choices),并包含一個串列,用來宣告該資源的不同可用版本,然后客戶端在請求訊息中包含Accept-Language和Accept- Charset頭域指定需要的版本,
5.帶寬優化
HTTP/1.1中在請求訊息中引入了range頭域,它允許只請求資源的某個部分,在回應訊息中Content-Range頭域宣告了回傳的這部分物件的偏移值和長度,如果服務器相應地回傳了物件所請求范圍的內容,則回應碼為206(Partial Content),它可以防止Cache將回應誤以為是完整的一個物件,請求訊息中如果包含比較大的物體內容,但不確定服務器是否能夠接收該請求(如是否有權限),此時若貿然發出帶物體的請求,如果被拒絕也會浪費帶寬, HTTP/1.1加入了一個新的狀態碼100(Continue),客戶端事先發送一個只帶頭域的請求,如果服務器因為權限拒絕了請求,就回送回應碼 401(Unauthorized);如果服務器接收此請求就回送回應碼100,客戶端就可以繼續發送帶物體的完整請求了,注意,HTTP/1.0的客戶 端不支持100回應碼,
節省帶寬資源的一個非常有效的做法就是壓縮要傳送的資料,Content-Encoding是對訊息進行端到端(end-to-end)的編碼,它可能是 資源在服務器上保存的固有格式(如jpeg圖片格式);在請求訊息中加入Accept-Encoding頭域,它可以告訴服務器客戶端能夠解碼的編碼方 式,而Transfer-Encoding是逐段式(hop-by-hop)的編碼,如Chunked編碼,在請求訊息中加入TE頭 域用來告訴服務器能夠接收的transfer-coding方式,
HTTP/2有什么不足?
HTTP/2 主要的問題在于,多個 HTTP 請求在復??個 TCP 連接,下層的 TCP 協議是不知道有多少個 HTTP 請求的,所以?旦發?了丟包現象,就會觸發 TCP 的重傳機制,這樣在?個 TCP 連接中的所有的 HTTP 請求都必須等待這個丟了的包被重傳回來,
HTTP/1.1 中的管道( pipeline)傳輸中如果有?個請求阻塞了,那么佇列后請求也統統被阻塞住了,
HTTP/2 多個請求復??個TCP連接,?旦發?丟包,就會阻塞住所有的 HTTP 請求,
這都是基于 TCP 傳輸層的問題,所以 HTTP/3 把 HTTP 下層的 TCP 協議改成了 UDP,
HTTP常見欄位

Host欄位:客戶端發送請求時,?來指定服務器的域,
Connection:最常?于客戶端要求服務器使用TCP 持久連接,以便其他請求復?,
Content-Length:服務器在回傳資料時,會有 Content-Length 欄位,表明本次回應的資料長度,
Content-Type:欄位?于服務器回應時,告訴客戶端本次的資料格式,
Content-Encoding :說明資料的壓縮?法,表示服務器回傳的資料使?了什么壓縮格式,
HTTP請求報文
HTTP報文有兩種型別:請求、回應,
HTTP請求報文
第一種:ASCII (人能閱讀)
由請求行(GET、POST、HEAD命名組成)、首部行和換行回車符(表示報文結束)組成,

HTTP請求報文通用格式

HTTP請求報文格式由命令列(method,sp,url,version空格等)、若干首部行名稱和冒號后的首部的值(header lines)、一個回車以及有可能有的物體名稱(POST命令需提交表單有物體名稱,GET形式)
提交表單的輸入:Post方式與URL方式
Post方式
網頁通常包括表單輸入,包含在物體主體 (entity body )中的,輸入被提交到服務器,
URL方式
URL方式:輸入通過請求行的URL欄位上載
方法:GET
HTTP的方法型別
HTTP/1.0
GET
POST
HEAD:要求服務器在回應報文中 不包含請求物件
HTTP/1.1
GET, POST, HEAD
PUT:將物體主體中的檔案上載 到URL欄位規定的路徑
DELETE:洗掉URL欄位規定的檔案
HTTP的回應報文
回應報文格式
HTTP的回應報文由狀態行(協議版本、狀態碼和相應狀態資訊)、首部行和資料(如請求的HTML檔案)組成,

狀體碼
狀體碼:位于服務器à客戶端的回應報文中的首行,作業中可以利用抓包查看狀態碼,檢測錯誤型別,
一些常見狀態碼的例子:
2XX(3種)
200 OK:請求成功,請求物件包含在回應報文的后續部分
204 No Content:表示客戶端發送給服務器的請求得到了成功處理,但在回傳的回應報文中不含物體的主體部分(沒有資源可以回傳)
206 Patial Content:表示客戶端進行了范圍請求,并且服務器成功執行了這部分的GET請求,回應報文中包含由Content-Range指定范圍的物體內容
3XX(5種)
301 Moved Permanently:請求的物件已經被永久轉移了;即新的URL在回應報文的Location(首部行中指定),客戶端軟體自動用新的URL去獲取物件
302 Found:臨時性重定向,表示請求的資源被分配了新的URL,希望本次訪問使用新的URL
301與302的區別:前者是永久移動,后者是臨時移動(之后可能還會更改URL)
303 See Other:表示請求的資源被分配了新的URL,應使用GET方法定向獲取請求的資源
302與303的區別:后者明確表示客戶端應當采用GET方式獲取資源
304 Not Modified:表示客戶端發送附帶條件(是指采用GET方法的請求報文中包含if-Match、If-Modified-Since、If-None-Match、If-Range、If-Unmodified-Since中任一首部)的請求時,服務器端允許訪問資源,但是請求為滿足條件的情況下回傳改狀態碼
307 Temporary Redirect:臨時重定向,與303有著相同的含義,307會遵照瀏覽器標準不會從POST變成GET;(不同瀏覽器可能會出現不同的情況)
4XX(3種)
400 Bad Request:一個通用的差錯代碼,表示該請求不能被服務器解讀
401 Unauthorized:未經許可,需要通過HTTP認證;
403 Forbidden:服務器拒絕該次訪問(訪問權限出現問題)
404 Not Found:請求的檔案在該服務上沒有找到
5XX(4種)
500 Inter Server Error:表示服務器在執行請求時發生了錯誤,也有可能是web應用存在的bug或某些臨時的錯誤時;
501 Not Implemented:表示客戶端請求的功能還不?持
503 Service Unavailable:表示服務器當前很忙,暫時無法回應服務器
505 HTTP Version Not Supported:表示服務器暫時處于超負載或正在進行停機維護,無法處理請求
此外還有:
499 client has closed connection:這很有可能是因為服務器端處理的時間過長,客戶端主動斷開了連接
用戶-服務器狀態:cookies
了解cookies
HTTP是一種無狀態的協議,但是服務器需要維護客戶端的狀態,因此大多數主要的門戶網站使用cookies來改善,
cookies由四個4個組成部分:
1.在HTTP回應報文中有一個cookie的首部行
2.在HTTP請求報文含有一個cookie的首部行
3.在用戶端系統中保留有一個cookie檔案,由用戶的瀏覽器管理
4.在Web站點有一個后端資料庫
cookies維護實體

chaochao總是用同一個PC使 用Internet Explore上網,他第一次訪問了一個使用了Cookie的電子商務網站,當最初的HTTP請求到達服務器時,該Web站點產生一個唯一的ID,并以此作為索引在它的后端資料庫中產生一個項,那么以后的訪問就能產生特定的動作,
Cookies的用處與維護
cookies可以用來:用戶驗證、購物車、推薦、用戶狀態 (Web e-mail)等
cookies如何維持狀態
協議端節點:在多個事務上,發送端和接收端維持狀態
cookies: http報文攜帶狀態資訊
Cookies與隱私
Cookies允許站點知道許多關于用戶的資訊,可能將它知道的東西賣給第三方,使用重定向和cookie的搜索引擎還能知道用戶更多的資訊,如通過某個用戶在大量站點上的行為,了解其個人瀏覽方式的大致模式,廣告公司從站點獲得資訊,
Web快取
web快取目標
Web快取的目標:不訪問原始服務器,就滿足客戶的請求,
①用戶設定瀏覽器:通過快取訪問Web
②將Web瀏覽器設定為服務代理,瀏覽器將所有的HTTP請求發給快取
在快取中的物件:快取直接回傳物件,如物件不在快取,快取請求原始服務器,然后再將物件回傳給客戶端,

快取既是客戶端又是服務器,通常快取是由ISP安裝 (大學、公司、居民區ISP),
使用Web快取的優勢
1.降低客戶端的請求回應時間
2.可以大大減少一個機構內部網路與Internent接入鏈路上的流量,減少了服務器和網路的負擔
3.互聯網大量采用了快取:可以使較弱的ICP也能夠有效提供內容
快取的實體




條件GET方法
目標:如果快取器中的物件拷貝是最新的,就不要發送物件
快取器: 在HTTP請求中指定快取拷貝的日期
If-modified-since:
<date>
服務器: 如果快取拷貝陳舊,則回應報文沒包含物件
HTTP/1.0 304 Not
Modified

(本文的圖片來自與中科大 鄭烇老師課件)
面試常考題
01.HTTP與HTTPs
什么是HTTP
HTTP(HyperText Transfer Protocol):超文本傳輸協議,是一個基于請求與回應,無狀態的,應用層的協議,常基于TCP協議傳輸資料,互聯網上應用最為廣泛的一種網路協議,所有的WWW檔案都必須遵守這個標準,
什么是 HTTPS?
HTTPS (基于安全套接字層的超文本傳輸協議 或者是 HTTP over SSL) 是一個 Netscape 開發的 Web 協議,
你也可以說:HTTPS = HTTP + SSL,HTTPS 在 HTTP 應用層的基礎上使用安全套接字層作為子層,
HTTPS協議的主要作用可以分為兩種:一種是建立一個資訊安全通道,來保證資料傳輸的安全;另一種就是確認網站的真實性,
主要區別:
①http是超文本傳輸協議,資訊是明文傳輸,https則是具有安全性的ssl/tls加密傳輸協議,HTTPS 在 TCP 三次握?之 后,還需進? SSL/TLS 的握?程序,才可進?加密報?傳輸;
②HTTPS需要得到CA申請證書,一般免費證書較少,因而需要一定費用;
③HTTP和HTTPS使用的是完全不同的連接方式,用的埠也不一樣,前者是80,后者是443;
④HTTP的連接很簡單,是無狀態的;HTTPS協議是由SSL/TLS+HTTP協議構建的可進行加密傳輸、身份認證的連接方式;
⑤HTTPS 協議需要向 CA(證書權威機構)申請數字證書,來保證服務器的身份是可信的
02.HTTPS 是如何解決上HTTP的不安全性?
①HTTPS 采?的是對稱加密和非對稱加密結合的混合加密方式;
②基于摘要演算法的方式來實作完整性,它能夠為資料?成獨一無二的密文,密文用于校驗資料的完整性,解決了篡改的風險,
③將服務器公鑰放?到數字證書中,解決了冒充的風險
03.數字證書和 CA 機構
?個數字證書通常包含了:公鑰;持有者資訊;證書認證機構(CA)的資訊;CA 對這份?件的數字簽名及使?的演算法;證書有效期;還有?些其他額外資訊;
那數字證書的作?,是?來認證公鑰持有者的身份,以防?第三?進?冒充,
我們用證書來認證公鑰持有者的身份(服務端的身份),那證書?是怎么來的??該怎么認證證書呢?
為了讓服務端的公鑰被大家信任,服務端的證書都是由 CA (Certificate Authority,證書認證機構)簽名的,CA就是?絡世界?的公安局、公證中?,具有極?的可信度,所以由它來給各個公鑰簽名,信任的??簽發的證書,那必然證書也是被信任的,
之所以要簽名,是因為簽名的作?可以避免中間?在獲取證書時對證書內容的篡改,
如下圖圖所示,為數字證書簽發和驗證流程:

CA 簽發證書的程序,如上圖左邊部分:
1.?先 CA會把持有者的公鑰、?途、頒發者、有效時間等資訊打包,然后對這些資訊進? Hash 計算,得到?個 Hash 值;
2.然后 CA 會使用自己的私鑰將該 Hash 值加密,?成 Certificate Signature,也就是 CA 對證書做了簽名;
3.最后將 Certificate Signature 添加在?件證書上,形成數字證書;
客戶端校驗服務端的數字證書的程序,如上圖右邊部分:
1.?先客戶端會使用同樣的 Hash 演算法獲取該證書的 Hash 值 H1;
2.通常瀏覽器和作業系統中集成了 CA 的公鑰資訊,瀏覽器收到證書后使用CA 的公鑰解密 CertificateSignature 內容,得到?個 Hash 值 H2 ;
3.最后?較 H1 和 H2,如果值相同,則為可信賴的證書,否則則認為證書不可信,
04.GET 和 POST 的區別
Get方法:Get?法的含義是請求從服務器獲取資源,這個資源可以是靜態的?本、??、圖?視頻等,
POST方法:POST方法則是相反操作,它向 URI 指定的資源提交資料,資料就放在報文的 body ?,
05.GET 和 POST ?法都是安全和冪等的嗎?
先說明下安全和冪等的概念: 在 HTTP 協議?,所謂的安全是指請求方法不會破壞服務器上的資源, 所謂的冪等,意思是多次執行相同的操作,結果都是相同的,
因此,GET ?法就是安全且冪等的,因為它是只讀操作,?論操作多少次,服務器上的資料都是安全的,且每次的結果都是相同的, POST因為是新增或提交資料的操作,會修改服務器上的資源,所以是不安全的,且多次提交資料就會創建多個資源,所以不是冪等的,
(面試題詳解參考小林coding博主)
創作不易,客官點個贊,評論一下吧!超超和你一起加油?😜
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/299663.html
標籤:java
上一篇:HTML+CSS+JS實作 ??酷炫情人節愛心影片特效??
下一篇:【Java】剖析類和物件
