.NET 5 中的隱藏特性
阿新 • • 發佈:2020-11-12
一、什麼是HTTP協議 HyperText Transfer Protocol,超文字傳輸協議 HTTP:用於規定瀏覽器客戶端和伺服器之間的通訊方式(規則) HTTP協議主要規定了瀏覽器在傳送請求給伺服器時必須要遵循什麼格式 以及規定了伺服器在做出迴應(響應)給瀏覽器時必須要遵循什麼格式 HTTP工作時所遵循的原則: 1)一次請求必須對應一次響應 2)請求只能是瀏覽器傳送給伺服器,伺服器只能被動的等待請求,根據請求做出迴應 二、HTTP協議詳解 HttpWatch瀏覽器外掛: 用於監聽瀏覽器和伺服器通訊的內容 在一個較老版本的火狐瀏覽器上安裝這個外掛 1、Http請求資訊 第一部分:請求行 GET /news/hello.html HTTP/1.1 1)GET: 提交方式,HTTP協議中一共規定了7種提交方式,其中5種都不常用,只用GET和POST GET提交和POST提交有什麼區別? 後面講 2)/news/hello.html: 請求資源路徑,顯示了訪問哪一個應用下的哪一個資原始檔 3)HTTP/1.1: 請求所遵循的協議和版本 第二部分: 請求報頭(若干請求頭) Host: localhost:8080 -- 指定訪問的主機名和埠 User-Agent: Mozilla/5.0..Firefox/25.0 -- 指定客戶端的版本 Accept: .. -- 客戶端能夠接受的資料型別 ... 第三部分: 請求實體 如果請求方式為GET,請求實體中不會有內容(請求實體是空的); 如果請求方式為POST,並且請求中攜帶了資料,此時請求實體中才會有內容; 2、Http響應資訊 第一部分:狀態行 HTTP/1.1 200 1)HTTP/1.1: 響應所遵循的協議和版本 2)200: 狀態碼,表示請求處理的結果 200: 表示請求處理是成功的! 302: 表示瀏覽器需要進一步請求才可以訪問到對應的資源 304/307: 表示讓瀏覽器使用以前快取的資原始檔 404: 表示瀏覽器所請求的資源找不到(可能是瀏覽器的訪問路徑是錯誤的!) 500: 表示伺服器內部出現錯誤(可能是伺服器在處理請求時丟擲了異常) 3)OK: 和前面的狀態碼對應 200 OK 404 Not Found 500 Internal Server Error 第二部分: 響應報頭(若干響應頭) Content-Type: text/html -- 響應給瀏覽器的資料型別,text/html表示html格式的網頁 Content-Length: 139 -- 響應給瀏覽器的資料長度,139位元組 ... 第三部分: 響應實體 響應實體:就是瀏覽器所請求的檔案內容 比如:瀏覽器請求伺服器內部的一個hello.html檔案,伺服器在響應時, 就會將hello.html檔案的內容作為響應實體傳送瀏覽器 補充內容1:什麼時候是GET提交?什麼時候是POST提交?只有當使用表單(form)並且在表單上通過method屬性指定提交方式為POST時,才是POST提交,其它的都是GET提交(AJAX除外)。 思考題: (1)<form action="#"></form> -- GET提交 (2)<form action="#" method="GET"></form> -- GET提交 (3)<form action="#" method="POST"></form> -- POST提交 (4)點選超連結訪問伺服器,例如: <a href="http://www.baidu.com">百度一下</a> -- GET提交 (5)直接在瀏覽器的位址列中書寫URL地址訪問伺服器 -- GET提交 補充內容2:GET提交和POST提交的主要區別?GET提交: 1) GET提交是在位址列URL地址的後面通過問號拼接引數將資料提交給伺服器 由於資料會顯示在位址列上,如果是隱私資料,非常的不安全 2) 通過位址列提交資料,資料量不能超過1KB或者4KB 更不能提交檔案 POST提交: 1) POST不是通過位址列提交資料,而是通過請求實體將資料帶給伺服器 由於資料是通過請求實體傳送資料,相對更加安全! 2) 通過請求實體提交資料,資料量理論上沒有限制! 使用場景: 1)如果只是單純做一個跳轉,或者只是訪問一個網頁,請求中沒有資料,都是使用GET提交。 2)如果在請求中有資料,但資料量不大,並且資料沒有隱私性,也儘量使用GET提交。 3)如果在請求中有資料,資料量比較大或者資料較為隱私,此時推薦使用POST提交, 如果是提交檔案,只能用POST提交。 <<圖解HTTP協議>>