2020-11-7(http协议简介)
1.web相關概念介紹
b/s browser/server 更新只在服務端進行(訪問東西都到服務端)
c/s client/server 客戶端
通俗滴說就是 訪問b/s架構的東西時,不需要在客戶端安裝東西,可以直接通過瀏覽器界面(b/s)進行操作
2.常見的常見服務器介紹
iis(微軟開發的)使用.net技術,C# 收費
weblogic(原來weblogic屬于weblogic公司) (被收購)---->bea(被收購)-----> Oracle java開發的大型服務端程序 (javaee規范 收費)
webspera IBM java開發的大型服務端程序 (javaee規范 收費)
Tomcat 中小型服務端程序 (免費 支持部分javaee規范) jsp
(配合servlet使用)
LAMP(apache PHP聯合使用)
靜態的web資源 html
動態的web資源 觸發了服務端的程序,由服務端的程序動態生成web相關的內容
3.tomcat
a.JAVA_HOME必須配置的
b.如果當前的電腦上裝了多個tomcat還需要指定catlina_home catlina_home就是配置到tomcat的解壓目錄,能看到bin目錄這一級
如果發現雙擊start up界面一閃而過,可以開啟一個控制臺,在控制臺中允許startup.bat 根據提示做相關的配置
發布web項目到tomcat
a.在webapps目錄下,創建一個文件夾,把要發布的web頁面放到文件夾內
b.通過.war包的形式發布web項目 把想要發布的內容壓縮成.zip文件(要用標準壓縮模式),修改擴展名為.war,把war文件拷貝到webapps目錄下,tomcat會自動解壓縮.war,想刪除項目,直接把.war刪除即可(解壓前提是tomcat運行起來)
4.http協議相關內容
TCP/IP 協議
ip 信封 通過ip可以確定唯一的一臺主機,通過端口確定要訪問的具體程序
TCP/UDP
TCP 面向連接,連接的時候 三次握手,斷開的時候四次揮手(相對安全,效率稍低)
UDP 面向無連接(安全性差,可能丟失數據)
http協議是基于tcp
socket java搞出來的做TCP/IP開發的一套接口(java的API)
(例如:在服務端這邊有 server socket等待著客戶端連接,客戶端new一個socket,傳一個ip,端口,即可和服務端連接)
記住:TCP/IP不包含socket,和socket無關,只不過在java下,要做TCP/IP相關的開發,要用到API就是socket
(ip代表一個主機,端口代表主機上運行的程序)
http—>tcp—>ip
http 超文本傳輸協議
http1.0每一次請求之后都會斷開連接
http1.1每次請求之后不必斷開,keepconnection(目前使用)
請求 request get/post put head trace delete
get 參數提交方式(所有的參數都放到url后面,URL跟參數之前用?隔開,每一個參數直接用&符號隔開)
提交參數的長度有限制(http協議對get方式提交參數長度沒有限制,只不過瀏覽器的地址欄有限。。2K~8K)根據所有的瀏覽器而言一般不超過2K,實際上是瀏覽器對url 的長度有限制
post 參數的組拼方式,每一個參數之間用&符號隔開,key=value形式
參數是放到請求體中,具體長度不受限制(一些特定的需求,比如文件上傳必須使用post)
請求行 :包括請求的地址 請求的方法 http版本
請求頭:
get方式的請求頭:
a.host 請求主機的ip
b.user_agent 告訴服務端,當前瀏覽器可以處理的數據類型
b.Accept:告訴服務端,當前瀏覽器可以處理的數據類型
d.Accept-Language:告訴服務器,當前瀏覽器可以接受的語言
e.Accept-Encoding:告訴服務器,當前瀏覽器可以支持的壓縮格式
f.Referer:提交的url
g.Connection:時候斷開連接
post方式的請求頭:
如果有參數提交,那么會比get方式多兩個請求頭
a.host 請求主機的ip
b.user_agent 告訴服務端,當前瀏覽器可以處理的數據類型
b.Accept:告訴服務端,當前瀏覽器可以處理的數據類型
d.Accept-Language:告訴服務器,當前瀏覽器可以接受的語言
e.Accept-Encoding:告訴服務器,當前瀏覽器可以支持的壓縮格式
f.Referer:提交的url
g.Connection:時候斷開連接
h.Content-Type:告訴服務端提交的數據類型
i.content-length:告訴服務端提交的參數的數據類型
請求體:
get方式提交沒有請求體
post方式才有請求體:
通過url編碼把所要提交的數據進行編碼,然后把所有的參數以流的形式提交到服務端
響應 response
響應行:
a.響應碼((200299:說明請求成功,服務端成功返回數據)(300399:服務端收到了請求,但是需要客戶端進行近一步操作)(400499:請求錯誤(客戶端問題))(500599:服務端錯誤))
200:請求成功,服務端成功返回數據
302:請求重定向,當前服務端成功返回結果,告訴客戶端請求另外一個資源
304 :告訴客戶端當前服務端沒有更新,可以使用緩存
404:未找到資源
500:服務端問題,服務端錯誤
b.http版本號
響應頭
a.Accept-Ranges:說明當前服務端返回數據的單位
b.Content-Length:響應體長度
c.Content-Type:響應的類型
d.Date:服務端當前的時間
e.Etag Last-Modified: 用來判斷服務端內容是否有變化,如果Etag Last-Modified兩次訪問內容都沒有變化,說明在兩次訪問的時間間隔內服務端沒有發生改變,可以使用緩存的數據
f:Serve:面熟當前服務端的類型
響應體
response里的那段html
http響應后操作:
判斷服務端響應行返回的狀態碼,如果是200,獲取流把響應體的內容讀出來,通過響應頭判斷數據類型做對應的展示
總結
以上是生活随笔為你收集整理的2020-11-7(http协议简介)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020-11-6(简述html)
- 下一篇: 2020-11-7( servlet)