JAVA面試考點解析(6) -- HTTP/TCP/IP 網絡協議、網絡安全


14.HTTP GET POST請求的區別

1、GET請求,請求的數據會附加在URL之后,以?分割URL和傳輸數據,多個參數用&連接。URL的編碼格式采用的是ASCII編碼,而不是uniclde,即是說所有的非ASCII字符都要編碼之后再傳輸。
POST請求:POST請求會把請求的數據放置在HTTP請求包的包體中。
因此,GET請求的數據會暴露在地址欄中,而POST請求則不會。
2、傳輸數據的大小
在HTTP規范中,沒有對URL的長度和傳輸的數據大小進行限制。但是在實際開發過程中,對於GET,特定的瀏覽器和服務器對URL的長度有限制。因此,在使用GET請求時,傳輸數據會受到URL長度的限制。
對於POST,由於不是URL傳值,理論上是不會受限制的,但是實際上各個服務器會規定對POST提交數據大小進行限制,Apache、IIS都有各自的配置。
3、安全性
POST的安全性比GET的高。這里的安全是指真正的安全,而不同於上面GET提到的安全方法中的安全,上面提到的安全僅僅是不修改服務器的數據。比如,在進行登錄操作,通過GET請求,用戶名和密碼都會暴露再URL上,因為登錄頁面有可能被瀏覽器緩存以及其他人查看瀏覽器的歷史記錄的原因,此時的用戶名和密碼就很容易被他人拿到了。

  

20.SESSION和COOKIE的區別和使用場景

Session和cookie都是會話(session)跟蹤技術.cookie通過在客戶端記錄信息確定用戶身份,而session是通過在服務器端記錄信息確定用戶身份.但是session的實現依賴於cookie機制來保存JESESSIONID(session的唯一標識,需要存在客戶端)
區別: 

1. cookie的數據存儲在客戶端,session的數據存儲在服務器上 
1. cookie不是很安全,別人可以通過分析存放在本地的cookie並進行cookie欺騙,考慮到安全應該使用session 
1. session會在一定時間內保存在服務器上,當訪問增多時,會影響服務器的性能.考慮到服務器性能,應當使用cookie. 
1. 單個cookie保存數據不能超過4k,很多瀏覽器顯示一個站點最多保存20個cookie 
2. 將重要信息保存在session中(登陸),將其他需要保留的信心存放在cookie中(購物車,cookie是可以在客戶端禁用的,這時候要使用cookie+數據庫的方式實現購物車,當cookie中不能取出數據,就從數據庫中取)

 


79.cookie和session

1.Cookie是由服務器創建的,通過response對象的addCookie(Cookie cookie)方法寫回客戶端,存儲在客戶端的會話技術.key-value的結構 
2.session是基於cookie,session的創建是由服務器做,可以通過request.getSession()獲取(要從你的請求中找一個cookie—Jessionid,如果能找到這個cookie,他會拿着這個cookie的值去跟服務器端的session的id比較,如果找到相應的session,就不創建session.如果找不到相應的session,會創建session).session一旦創建就會有一個id屬性(唯一的),通過response以cookie的方式寫回客戶端(這個cookie就叫做就sessionid).
會話:會話就是簡單的理解成打開瀏覽器(包含了一次請求或多次請求).

 

78.http協議
1.無狀態,為了解決http無狀態問題,引入cookie技術 
2.http1.0是短連接,http1.1是長連接 
3.http協議是基於B/S請求-應答模式

 

97.https和http

HTTP:是互聯網上應用最為廣泛的一種網絡協議,是一個客戶端和服務器端請求和應答的標准(TCP),用於從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網絡傳輸減少。 
HTTPS:是以安全為目標的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。 
HTTPS協議的主要作用可以分為兩種:一種是建立一個信息安全通道,來保證數據傳輸的安全;另一種就是確認網站的真實性。
區別: 
1、https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。 
2、http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協議。 
3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。 
4、http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。

   

99.安全性問題(別的網站使用爬蟲技術爬你的網站怎么辦?有沒有安全措施)

單位時間內請求次數超過某個閾值就讓輸入驗證碼,可以極大降低抓取的速度,如果多次超 
過某個閥值可以加入黑名單。還有就是頁面內容使用 json 返回,數據經常變一變格式,或 
者 js 動態生成頁面內容

  

101.TCP和UDP的區別

1.tcp面向連接(如打電話要先撥號連接);udp是無連接的,即發送數據之前不需要連接 
2.tcp提供可靠的服務。也就是說通過tcp傳送的數據,無差錯,無丟失,不重復,且按序到達;udp盡最大努力交付,不保證交付是否成功 
3.tcp面下字節流,實際上tcp把數據看成是一連串無結構的字節流;udp是面向報文的,udp沒有擁塞控制,因此網絡出現擁塞不會使源主機的發送速率降低(對實時應用很有用,比如視頻會議) 
4.每一條tcp連接只能是點到點的;udp支持一對一,一對多,多對一,多對多的交互通信 
5.tcp首部開銷20字節;udp首部開銷小,只有8字節 
6.tcp通信信道是全雙工的可靠信道;udp則是不可靠

 

103.為什么揮手會比握手多一次

因為當Server端收到Client端的SYN連接請求報文后,可以直接發送SYN+ACK報文。其中ACK報文是用來應答的,SYN報文是用來同步的。但是關閉連接時,當Server端收到FIN報文時,很可能並不會立即關閉SOCKET,所以只能先回復一個ACK報文,告訴Client端,”你發的FIN報文我收到了”。只有等到我Server端所有的報文都發送完了,我才能發送FIN報文,因此不能一起發送。故需要四步握手。

  

 

121、解釋一下網絡應用的模式及其特點。 
答:典型的網絡應用模式大致有三類:B/S、C/S、P2P。其中B代表瀏覽器(Browser)、C代表客戶端(Client)、S代表服務器(Server),P2P是對等模式,不區分客戶端和服務器。B/S應用模式中可以視為特殊的C/S應用模式,只是將C/S應用模式中的特殊的客戶端換成了瀏覽器,因為幾乎所有的系統上都有瀏覽器,那么只要打開瀏覽器就可以使用應用,沒有安裝、配置、升級客戶端所帶來的各種開銷。P2P應用模式中,成千上萬台彼此連接的計算機都處於對等的地位,整個網絡一般來說不依賴專用的集中服務器。網絡中的每一台計算機既能充當網絡服務的請求者,又對其它計算機的請求作出響應,提供資源和服務。通常這些資源和服務包括:信息的共享和交換、計算資源(如CPU的共享)、存儲共享(如緩存和磁盤空間的使用)等,這種應用模式最大的阻力安全性、版本等問題,目前有很多應用都混合使用了多種應用模型,最常見的網絡視頻應用,它幾乎把三種模式都用上了。

補充:此題要跟"電子商務模式"區分開,因為有很多人被問到這個問題的時候馬上想到的是B2B(如阿里巴巴)、B2C(如當當、亞馬遜、京東)、C2C(如淘寶、拍拍)、C2B(如威客)、O2O(如美團、餓了么)。對於這類問題,可以去百度上面科普一下。

 


122、什么是Web Service(Web服務)? 
答:從表面上看,Web Service就是一個應用程序,它向外界暴露出一個能夠通過Web進行調用的API。這就是說,你能夠用編程的方法透明的調用這個應用程序,不需要了解它的任何細節,跟你使用的編程語言也沒有關系。例如可以創建一個提供天氣預報的Web Service,那么無論你用哪種編程語言開發的應用都可以通過調用它的API並傳入城市信息來獲得該城市的天氣預報。之所以稱之為Web Service,是因為它基於HTTP協議傳輸數據,這使得運行在不同機器上的不同應用無須借助附加的、專門的第三方軟件或硬件,就可相互交換數據或集成。

補充:這里必須要提及的一個概念是SOA(Service-Oriented Architecture,面向服務的架構),SOA是一種思想,它將應用程序的不同功能單元通過中立的契約聯系起來,獨立於硬件平台、操作系統和編程語言,使得各種形式的功能單元能夠更好的集成。顯然,Web Service是SOA的一種較好的解決方案,它更多的是一種標准,而不是一種具體的技術。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM