協議
兩個應用之間進行資訊的傳輸需要對傳輸的格式進行一些的商定,這樣才能順利地交通。這就像我們的自然語言,都會是由一定的語法構成乙個句子的完整的意思,沒有了我們已經知道的或是預設的語法,那麼就不能順暢地進行溝通。對於一些企業的內部應用,企業內部可以自己制定自已客戶端和服務端溝通的協議。
http協議
對於web應用,http就是全球資訊網組織為我們所有基於b/s架構的軟體開發商定的標準。通過這個協議標準,能夠將超文字標記語言文件從web伺服器傳送到客戶端的瀏覽器,進而渲染成為美觀的web頁面。
http是一種基於tcp/ip的應用層協議。是無連線、無狀態的。無連線表現為一次請求一次響應。無狀態表現為服務端並不知道客戶端瀏覽器以前是否請求過什麼資訊等等。
客戶端的請求訊息結構
常用的請求頭
accept:用於告訴伺服器,客戶機支援的資料型別 (例如:accept:text/html,image/*表示支援網頁、)
accept-charset:用於告訴伺服器,客戶機採用的編碼格式,如utf-8、iso-8859-1等
accept-encoding:用於告訴伺服器,客戶機支援的資料壓縮格式,如gzid
accept-language:客戶機語言環境,如中文等為zh-cn
host:客戶機通過這個伺服器,想訪問的主機名
if-modified-since:客戶機通過這個頭告訴伺服器,資源的快取時間
referer:客戶機通過這個頭告訴伺服器,它(客戶端)是從哪個資源來訪問伺服器的(防盜煉)
user-agent:客戶機通過這個頭告訴伺服器,客戶機的軟體環境(作業系統,瀏覽器版本等)
cookie:客戶機通過這個頭,將coockie資訊帶給伺服器
connection:告訴伺服器,請求完成後,是否保持連線
date:告訴伺服器,當前請求的時間
服務端的響應格式
常用的響應頭
例如: context.response.addheader("content-disposition","attachment:filename=aa.jpg"); context.response.writefile("aa.jpg");
transfer-encoding:告訴瀏覽器,傳送資料的編碼格式
etag:快取相關的頭(可以做到實時更新)
expries:告訴瀏覽器回送的資源快取多長時間。如果是-1或者0,表示不快取
cache-control:控制瀏覽器不要快取資料 no-cache
pragma:控制瀏覽器不要快取資料 no-cache
connection:響應完成後,是否斷開連線。 close/keep-alive
date:告訴瀏覽器,伺服器響應時間
以上部分參考
http的狀態碼
以上部分參考自
http協議簡單了解
現在我們來看一下這個響應頭的乙個例子,還是只說明一些我們現在需要知道的,其他內容讀者可以自己去查詢相關的內容。在這個例子中的響應頭我們可以看到 1 在第一行就告訴瀏覽器http協議的版本是1.1,狀態碼是200,意思是ok,就是說你的請求我同意了。2 在第二行就是告知瀏覽器我伺服器的名字。4 在第四...
簡單了解http協議
客戶端連上web伺服器後,若想獲得web伺服器中的某個web資源,需遵循一定的通訊格式,http協議用於定義客戶端與web伺服器通訊的格式。客戶端連上伺服器後,向伺服器請求某個web資源,稱之為客戶端向伺服器傳送了乙個http請求。乙個完整的http請求包括乙個請求行 若干請頭 以及實體內容。乙個響...
http協議簡單了解
http協議是建立在tcp ip協議之上應用層協議,預設埠為80,8080 http協議的的特點是無狀態,無連線 利用抓包工具httpwatch可以獲取報文 http協議的報文傳輸的是ascii碼,在tcp ip協議之上,主要主要分為三部分 請求行 請求頭 請求體 第一行,包含三個資訊 請求方式,u...