1. 程式人生 > >關於http協議的一些學習筆記

關於http協議的一些學習筆記

1.http請求頭部資訊

  • Accept :瀏覽器能處理的內容型別 。MIME 型別(text/htmlimage/pngapplication/json等), * / * 指任意型別
  • Accept-Charset:瀏覽器能夠顯示的字符集。
  • connection:瀏覽器與伺服器之間連線的型別(HTTP請求傳送之前,需要先建立TCP連線,只有TCP連線建立,才可以傳送HTTP請求。)keep-alive網路連線就是持久的,不會關閉,使得對同一個伺服器的請求可以繼續在該連線上完成;也就是說:在一次tcp連線中可以連續傳送多次資料,即可以保持一段時間的tcp連線,在這個保持的通道上有多個request
    、多個response。而不用每發一次資料就要重新進行三次握手連線,發完一次資料就要立即進行四次揮手釋放連線。 這樣可以提高效能和吞吐率。
  • Access-Control-Allow-Origin:響應頭指定了該響應的資源是否被允許與給定的origin共享(也就是跨域)。
  • Cookie:設定當前client和server的任何Cookie,鍵值格式cookie一般會設定clientserver之間的唯一會話標誌Cookie:設定當前clientserver的任何Cookie,鍵值格式。cookie一般會設定clientserver之間的唯一會話標誌.
  • content-type
    :實體頭部用於指示資源的MIME型別media type
    。(1)application/x-www-form-urlencoded (請求預設設定):一串字串,提交的資料按照 key1=val1&key2=val2 的方式進行編碼;(2)multipart/form-data:請求體也是一個字串,多用於檔案上傳 (3)application/json:服務端訊息主體是序列化後的 JSON 字串。(4)text/xml

2.請求格式

  • 請求行:方法URL議/版本
  • 請求頭:一般放使用者資訊
  • 請求正文:一般放一些表單資料

GET/sample.jspHTTP/1.1
Accept:image/gif.image/jpeg,/


Accept-Language:zh-cn
Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
Accept-Encoding:gzip,deflate
username=jinqiao&password=1234

程式碼中“GET”代表請求方法,“/sample.jsp”表示URI,“HTTP/1.1代表協議和協議的版本。

GET/sample.jsp HTTP/1.1

請求頭包含許多有關的客戶端環境和請求正文的有用資訊。例如,請求頭可以宣告瀏覽器所用的語言,請求正文的長度等。

Accept:image/gif.image/jpeg./
Accept-Language:zh-cn
Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(compatible:MSIE5.01:Windows NT5.0)
Accept-Encoding:gzip,deflate.

請求正文 :請求頭和請求正文之間是一個空行,這個行非常重要,它表示請求頭已經結束,接下來的是請求正文

username=jinqiao&password=1234

3.關於cookie和session

  • Cookie的主要內容包括:名字,值,過期時間,路徑和域。以鍵值的方式保存於客戶端
  • Session作用於服務端。瀏覽器第一次傳送請求時,伺服器自動生成了一HashTable和一Session ID來唯一標識這個HashTable,並將其通過響應傳送到瀏覽器。瀏覽器第二次傳送請求會將前一次伺服器響應中的Session ID放在請求中一併傳送到伺服器上。
  • 單點登入的原理是後端生成一個 session ID,設定到 cookie,後面所有請求瀏覽器都會帶上cookie,然後服務端從cookie獲取session ID,查詢到使用者資訊.