天天看點

Web知識點Web知識點

Web知識點

1.什麼是事務?事務的特性?

(1)什麼是事務

事務是應用程式中一系列嚴密的操作,所有操作必須成功完成,否則在每個操作中所作的所有更改都會被撤消。也就是事務具有原子性,一個事務中的一系列的操作要麼全部成功,要麼一個都不做。

(2)事務的四大特性:

ACID,原子性(Atomicity)、一緻性(Correspondence)、隔離性(Isolation)、持久性(Durability)。

a.原子性:

整個事務中的所有操作,要麼全部完成,要麼全部不完成,不可能停滞在中間某個環節。事務在執行過程中發生錯誤,會被復原(Rollback)到事務開始前的狀态,就像這個事務從來沒有執行過一樣。

b.一緻性:

在事務開始之前和事務結束以後,資料庫的完整性限制(存儲在資料庫中的所有資料值均正确的狀态)沒有被破壞。

c.隔離性:

隔離狀态執行事務,使它們好像是系統在給定時間内執行的唯一操作。如果有兩個事務,運作在相同的時間内,執行相同的功能,事務的隔離性将確定每一事務在系統中認為隻有該事務在使用系統。這種屬性有時稱為串行化,為了防止事務操作間的混淆,必須串行化或序列化請求,使得在同一時間僅有一個請求用于同一資料。

d.持久性:

在事務完成以後,該事務所對資料庫所作的更改便持久的儲存在資料庫之中,并不會被復原。

2.Cookie和Session的差別

(1)Cookie:

由于HTTP是一種無狀态的協定,伺服器單從網絡連接配接上無從知道客戶身份。是以伺服器就給用戶端們頒發一個通行證,每人一個,無論誰通路都必須攜帶自己通行證,這樣伺服器就能從通行證上确認客戶身份了。這就是Cookie的工作原理。Cookie實際上是一小段的文本資訊。用戶端請求伺服器,如果伺服器需要記錄該使用者狀态,就使用response向用戶端浏覽器頒發一個Cookie。用戶端浏覽器會把Cookie儲存起來。當浏覽器再請求該網站時,浏覽器把請求的網址連同該Cookie一同送出給伺服器。伺服器檢查該Cookie,以此來辨認使用者狀态。伺服器還可以根據需要修改Cookie的内容。

(2)Session:

Session是另一種記錄客戶狀态的機制,不同的是Cookie儲存在用戶端浏覽器中,而Session儲存在伺服器上。用戶端浏覽器通路伺服器的時候,伺服器把用戶端資訊以某種形式記錄在伺服器上,這就是Session。用戶端浏覽器再次通路時隻需要從該Session中查找該客戶的狀态就可以了。

(3)差別:

a.如果說Cookie機制是通過檢查客戶身上的“通行證”來确定客戶身份的話,那麼Session機制就是通過檢查伺服器上的“客戶明細表”來确認客戶身份。Session相當于程式在伺服器上建立的一份客戶檔案,客戶來訪的時候隻需要查詢客戶檔案表就可以了。

b.單個cookie儲存的資料不能超過4K,Session對象沒有對存儲的資料量的限制,其中可以儲存更為複雜的資料類型

3.重定向原理

(1)一些基本知識

資源跳轉的兩種方式

I.請求轉發

i.步驟

  • 通過request對象擷取請求轉發器對象:
  • 使用RequestDispatcher對象來進行轉發:

一般簡寫為:

ii.特點

  • 浏覽器位址欄路徑不發生變化
  • 隻能轉發到目前伺服器内部資源中
  • 轉發是一次請求,可以通過request對象來共享資料
II.重定向

i.步驟

  • 設定狀态碼為302
  • 設定相應頭location

一般簡寫為:

ii.特點

  • 位址欄發生變化
  • 重定向可以通路其他站點(伺服器)的資源
  • 重定向是兩次請求,不能使用request對象來共享資料

(2)重定向原理

簡單地說,就是用戶端發送一個請求到伺服器,伺服器比對servlet,servlet處理完之後調用了sendRedirect()這個方法,設定HTTP響應報頭中的Status為302、設定HTTP響應報頭中的Location值為指定的URL。 用戶端接收這個響應,響應行告訴用戶端你必須要再發送一個請求,去通路Location裡的URL。用戶端發送一個新的請求,去請求指定資源。

4.http和https的差別

(1)安全性(最主要的差別)

  • http協定以明文方式發送内容,不提供任何方式的資料加密,如果攻擊者截取了Web浏覽器和網站伺服器之間的傳輸封包,就可以直接讀懂其中的資訊,是以,HTTP協定不适合傳輸一些敏感資訊,比如:信用卡号、密碼等支付資訊。
  • 而https 經由http通信,但利用 SSL/TLS 來加密資料包。https開發的主要目的,是提供對網站伺服器的身份認證,保護交換資料的隐私與完整性。

(2)工作端口不同

HTTP 預設工作在 TCP 協定 80 端口,而HTTPS 預設工作在 TCP 協定443端口

(3)相應速度不同

HTTP 頁面響應速度比 HTTPS 快,主要是因為 HTTP 使用 TCP 三次握手建立連接配接,用戶端和伺服器需要交換 3 個包,而 HTTPS除了 TCP 的三個包,還要加上 ssl 握手需要的 9 個包,是以一共是 12 個包。

(4)其他

另外,使用 HTTPS 協定需要到 CA(Certificate Authority,數字證書認證機構) 申請證書,一般免費證書較少,因而需要一定費用。證書頒發機構如:Symantec、Comodo、GoDaddy 和 GlobalSign 等。

繼續閱讀