標籤:資訊 ini 釋放 發送 action http協議 cat ati 重寫
概念整理 常見的協議雖然很容易理解,但是看了之後過一段時間不看還是容易忘,筆記如下,比較零碎,勉強供各位複習。如有錯誤歡迎指正。
DNS協議 DNS 協議的作用是將網域名稱解析為IP,網域名稱的數量非常多,網域名稱和ip的對應關係也經常變化,所以就需要專門的DNS伺服器,用來將網域名稱解析為IP。windows下,nslookup命令可以查看網域名稱解析的結果。nslookup +網址。世界各地有很多DNS伺服器,也有一些大型公用的DNS伺服器可以使用,比如Google的8.8.8.8和國內的114.114.114.114.我們直接存取的DNS伺服器叫本地DNS伺服器,它會從主DNS伺服器擷取跟我們請求網域名稱對應的ip,並且將對應關係放到緩衝中。網域名稱也有很多時候不好用,所以導航頁被需要。小程式和公眾號的導航頁有待開發。
TCP/IP協議 IP協議是用來查詢地址的,對應著網際互聯層,TCP協議是用來規範傳輸規則的,對應著傳輸層。ip負責找到地址,TCP負責具體傳輸。這是兩個不同的協議。TCP在傳輸之前會進行上次溝通,一般稱為“上次握手”,傳輸資料斷開的時候要進行四次溝通,一般稱為“四次揮手”。相關序號和標誌位:seq: sequence number的縮寫,表示所傳輸的資料的序號。ack: acknoledgement number 的縮寫,表示確認號。ACK: 確認為,只有ACK=1的時候ack才起作用。SYN: 同步位,用於建立串連時同步序號。FIN: 終止位,用來在資料轉送完畢後釋放串連。用於傳輸層的協議還有UDP,UDP是不需連線的,TCP溝通好後才會傳輸資料,UDP拿到地址立即傳輸。TCP可靠,但是效率低;UDP效率高常用於視頻,語音等對完整性要求不高的的資源。協議只是一套規則,並不能具體工作,就像程式的介面一樣;而socket是TCP/IP協議的一個具體實現。
HTTP協議 Http是應用程式層的協議,TCP/IP協議接收資料之後需要通過Http協議來解析才可以使用。發送電報過程中的編碼和解碼過程就相當於網路傳輸中的HTTP協議。 HTTP協議中的報文結構: 1,請求報文 方法 URL http版本 \r\n 參數1:值 參數2:值 ,,,, 主體 2,相應報文 http版本 狀態代碼 簡短原因\r\n 參數1:值 參數2:值 ,,,, 主體 Response中的狀態代碼: 1XX: 資訊性狀態代碼。 2XX: 成功狀態代碼。200 3XX: 重新導向狀態代碼。301表示重新導向。 4XX: 用戶端錯誤狀態代碼。404 5XX: 服務端錯誤狀態代碼。500表示內部錯誤。
Socket,Servlet與JavaWeb Servlet是j2ee標準的一部分,是javaweb的開發標準。Servlet的作用是對接收到的資料進行處理並產生要返回給用戶端的結果。Servlet是對接收到的資料進行處理並產生要返回給用戶端的結果,Servlet制定了Java中處理Web請求的標準,我們需要按照標準去做,規範、標準自己是不幹活的;要想使用Servlet需要有相應的Servlet容器才行,例如常見的Tomca就是一個Servlet容器t。 1,socket:是TCP/IP協議的一個具體實現。Java中的網路通訊即是通過Socket實現的, Socket分為兩大類,ServerSocket和Socket,ServerSocket用於服務端 ,通過accept方法監聽請求,監聽到請求後返回socket,socket用於具體完成資料轉送,用戶端直接使用socket發起請求並傳輸資料。此外,jdk1.4開始,java增加新的IO模式:nio,(New io),極大的提高了io效率,socket也屬於IO的一種,Nio提供相應的工具:ServerSocketChannel和socketChannel。分別對應原來的ServerSocket和Socket。Nio:Buffer(資料),Channel(通道),Selector(分揀員);後兩者多對多的關係。P29有處理過程。 2,HTTP協議是應用程式層的的協議,TCP/IP協議接收到資料之後,通過http協議解析之後才能使用,類似於電報中的編碼和解碼。 3,Servlet是J2EE標準的一部分,Server+Applet:表示一個伺服器應用 其作用是對接收到的資料進行處理,並產生要返回給用戶端的結果,Servlet制定了Java中處理web請求的標準,標準自己時不幹活的,所以想要使用Servlet需要有相應的Servlet容器才行,比如我們常見的Tomcat就是一個Servlet;getServletContext方法的傳回值ServletContext代表的呃使我們這個應用本身。參數選擇儲存到Application中時,大多數就是儲存在了ServletContext中(其為Application級的,而ServletConfig是Servlet級的)。Servlet介面中的方法,init方法在容器啟東市被容器調用,getServletConfig用於擷取ServletConfig,service方法用於具體處理一個請求;getServletInfo方法可以擷取一些Servlet相關的資訊,如作者等。GenericServlet是Servlet的預設實現,1,實現ServletConfig介面,2,提供無參init方法,3,提供log方法。Httpservlet,是用HTTP協議實現的Servlet的基類,寫Servlet時直接繼承它就可以(DispatchServlet)。Httpservlet主要重寫了Service方法。在Service方法中首先將ServletRequest和ServletResponse轉換為HttpServletRequest和httpServletResponse。然後根據http請求的不同將請求路由到不同的處理方法。doGet,doPost,doDelete等。HttpServlet,主要將不同的請求方式路由到不同的處理方法,而SpringMVC又將所有的請求合并到了統一的一個方法進行處理。 -----名白參考資料:《SpringMVC in Action Source Code and Practice》--韓路彪http://www.cnblogs.com/mingbai/p/WebConceptions.html
DNS,TCP,IP,HTTP,socket,Servlet概念整理