深入分析Java Web技術內幕(一)

2021-08-09 11:34:53 字數 1437 閱讀 7525

優點:

1. 客戶端使用統一的瀏覽器。瀏覽器的互動特性使得使用者使用它非常便捷

2. 伺服器端基於統一的http。使得伺服器開發者可以採用相對規範的開發模式

http採用無狀態的短連線的通訊方式。即一次請求就算完成了一次資料互動,通常也對應乙個業務邏輯,然後這次通訊連線就斷開了。

在瀏覽器輸入乙個**後:

1. 瀏覽器分析鏈結指向的url(統一資源定位符)

2. 瀏覽器請求dns(網域名稱系統)把這個網域名稱解析成對應的ip位址

3. 根據ip位址在網際網路上找到對應的伺服器

4. 瀏覽器與伺服器建立tcp連線

5. 向伺服器發起乙個get請求

6. 由伺服器決定返回預設的資料資源給訪問的使用者

7. 釋放tcp連線

在伺服器端實際上還有很複雜的業務邏輯:多台伺服器,需要乙個負載均衡裝置來平均分配所有使用者的請求;請求的資料是儲存在分布式快取裡還是乙個靜態檔案中,或者是資料庫裡;資料返回瀏覽器時,瀏覽器解析資料發現一些靜態資源時又發起另外的http請求。

固定不變的原則:

1. 網際網路上所有資源都要用乙個url來表示。

2. 必須基於http與伺服器端互動

3. 資料展示必須在瀏覽器中進行。

發起乙個http請求的過程就是建立乙個socket通訊的過程

常見的http請求頭

請求頭說明

accept-charset

用於指定客戶端接收的字符集

accept-encoding

用於指定的可接受的內容編碼

accept-language

用於指定一種自然語言

host

用於指定被請求資源的internet主機和埠號

user-agent

客戶端將它的作業系統、瀏覽器和其他屬性告訴伺服器

connection

當前連線是否儲存

常見的http相應頭

響應頭說明

server

使用的伺服器名稱

content-type

用來指明傳送給接收者的實體正文的**型別

content-encoding

與請求報頭accept-encoding對應,告訴瀏覽器服務端採用的是什麼壓縮編碼

content-language

描述了資源所用的自然語言,與請求對應

content-length

指明實體正文的長度,用以位元組方式儲存的十進位制數字來表示

keep-alive

保持連線的時間

常見的http狀態碼

狀態碼說明

200客戶端請求成功

302臨時跳轉,跳轉的位址通過location指定

400伺服器收到請求有語法錯誤,不能被伺服器識別

403伺服器收到請求,但是拒絕提供服務

500伺服器發生不可預期的錯誤

深入分析Java Web技術內幕 (一)

http解析 常見的http請求頭 請求頭說明accept charset 用於制定客戶端接受的字符集 accept encoding 用於制定可接受的內容編碼,如accpet encoding gzip。deflate accept language 用於指定一種自然語言,如 acept lang...

深入分析Java Web技術內幕 筆記

http1.1 cache control no cacahe 瀏覽器不快取該網頁 expires 1 表示立即過期 通用格式 expires sat,25 feb 2012 12 22 17 gmt 超過這個時間值後,快取的內容將失效,也就是瀏覽器發出請求之前檢查這個頁面的這個字段,過期了就重新向...

深入分析Java Web技術內幕(二)

第三步 使用者向local dns 發起請求.ldns主要承擔了網域名稱的解析工作 第四步 如ldns沒有命中,向根網域名稱root dns發起解析請求 第八步 name server網域名稱伺服器會查詢儲存的網域名稱和ip的對映關係表 第九步 返回該網域名稱對應的ip和ttl值,ldns快取 第十...