最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Http的基礎(chǔ)概念了解

 更新時(shí)間:2023年04月26日 10:10:54   作者:CrazyDragon_King  
這篇文章主要介紹了Java Http的基礎(chǔ)概念,HTTP協(xié)議是建立在TCP協(xié)議之上的,這個(gè)程序是通過(guò)TCP編程來(lái)構(gòu)建一個(gè)簡(jiǎn)單的Http服務(wù)器,需要的朋友可以參考下

學(xué)完了計(jì)算機(jī)網(wǎng)絡(luò)課程以后,確實(shí)學(xué)到了一些網(wǎng)絡(luò)的概念,初步擁有了對(duì)網(wǎng)絡(luò)的一些認(rèn)識(shí)。這些概念雖然可以用來(lái)解釋平時(shí)網(wǎng)絡(luò)上遇到的一些問(wèn)題,但是真正把網(wǎng)絡(luò)的知識(shí)運(yùn)用在平時(shí)編程當(dāng)中,機(jī)會(huì)還是比較少的。所以,對(duì)網(wǎng)絡(luò)的一些概念大多還是來(lái)自于書本,在平時(shí)學(xué)習(xí)的過(guò)程中,沒(méi)有自己親自體會(huì)到這些概念的用處,無(wú)法學(xué)以致用。

有一次我看到了一個(gè)Java手寫Http 服務(wù)器的代碼,感覺(jué)眼前一亮,很是有趣。這個(gè)程序是通過(guò)TCP編程來(lái)構(gòu)建一個(gè)簡(jiǎn)單的Http服務(wù)器。正好也對(duì)應(yīng)了計(jì)算機(jī)網(wǎng)絡(luò)分層的概念,Http協(xié)議是建立在TCP協(xié)議之上的,所以可以使用TCP編程來(lái)構(gòu)建Http服務(wù)器。因此我準(zhǔn)備來(lái)寫一個(gè)系列博客記錄一下自己的學(xué)習(xí)過(guò)程。這一些列會(huì)包括一些概念的介紹,然后是逐步編碼實(shí)現(xiàn)一個(gè)Http服務(wù)器的小demo。

基本概念了解

網(wǎng)絡(luò)的分層

注:關(guān)于概念的東西,這里不會(huì)介紹太多,畢竟還是書本上的知識(shí)更加全面一些,這里主要就是介紹一些概念。

計(jì)算機(jī)網(wǎng)絡(luò)被劃分為具有層次的結(jié)構(gòu),按照目前使用的TCP/IP 4層協(xié)議。TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協(xié)議/網(wǎng)際協(xié)議)是指能夠在多個(gè)不同網(wǎng)絡(luò)間實(shí)現(xiàn)信息傳輸?shù)膮f(xié)議簇。 我們學(xué)習(xí)的時(shí)候,是劃分成了五層協(xié)議來(lái)學(xué)習(xí)的,從底層到高層分別是:物理層->數(shù)據(jù)鏈路層->網(wǎng)絡(luò)層->傳輸層->應(yīng)用層。

這里只要知道:HTTP協(xié)議是建立在TCP協(xié)議之上的(或者應(yīng)用層是建立在傳輸層之上的)。

感興趣的可以去了解一下 TCP/IP 和 OSI 的關(guān)系,并且為何是TCP/IP成為了主流?

網(wǎng)絡(luò)的層次

HTTP協(xié)議

HTTP(HyperText Transfer Protocol),中文是超文本傳輸協(xié)議。它是用于從萬(wàn)維網(wǎng)(WWW:World Wide Web )服務(wù)器傳輸超文本到本地計(jì)算機(jī)的傳送協(xié)議。HTTP基于TCP/IP通信協(xié)議來(lái)傳遞數(shù)據(jù)。 HTTP基于客戶端/服務(wù)端(C/S)架構(gòu)模型,是一個(gè)無(wú)狀態(tài)的請(qǐng)求/響應(yīng)協(xié)議。 我們每天都會(huì)使用它,無(wú)論是瀏覽網(wǎng)頁(yè)、看視頻(基于Http協(xié)議的視頻流)或者是下載文件(這里指使用Http協(xié)議下載),都是Http協(xié)議在起作用,可見(jiàn)它的無(wú)處不在。

但是,作為一個(gè)計(jì)算機(jī)專業(yè)的學(xué)生,光知道這些還是不夠的,我們需要了解具體的協(xié)議。上面說(shuō)了,HTTP是一個(gè)請(qǐng)求、響應(yīng)協(xié)議,這里就是說(shuō),用戶發(fā)送一個(gè)請(qǐng)求,會(huì)得到一個(gè)響應(yīng)。請(qǐng)求和響應(yīng)都會(huì)對(duì)應(yīng)一個(gè)協(xié)議報(bào)文,分別稱之為請(qǐng)求報(bào)文和響應(yīng)報(bào)文,通常我們說(shuō)HTTP報(bào)文就是指這二者。

HTTP報(bào)文分為報(bào)文頭和報(bào)文體。 報(bào)文頭部是一些必要的控制信息和對(duì)報(bào)文體數(shù)據(jù)的說(shuō)明信息。通過(guò)這些信息,瀏覽器(通常是瀏覽器)就可以處理各種信息了,無(wú)論是文字、視頻還是圖片都是通過(guò)報(bào)文在網(wǎng)絡(luò)上面進(jìn)行傳輸。

請(qǐng)求報(bào)文和響應(yīng)報(bào)文

在這里插入圖片描述

這里主要是需要知道報(bào)文的結(jié)構(gòu)特點(diǎn),因?yàn)楹竺嫘枰馕龊?jiǎn)單的HTTP報(bào)文(更詳細(xì)的報(bào)文知識(shí),可以閱讀書籍或者參考其他人的博客?;蛘吣阋部梢灾苯娱喿x后面的博客,遇到問(wèn)題再去看,這樣效果會(huì)更好?。?報(bào)文頭部每一行需要一個(gè)回車換行符:CRLF CR: \r LF: \n 報(bào)文頭和報(bào)文體之間使用一個(gè)單獨(dú)的CRLF分開(kāi)。 注意:GET請(qǐng)求沒(méi)有報(bào)文體。

//請(qǐng)求報(bào)文
GET /test/hi-there.txt HTTP/1.1\r\n
Accept: text/plain\r\n
Host: www.joes-hardwar.com\r\n
//請(qǐng)求報(bào)文
HTTP/1.0 200 OK\r\n
Content-Type: text/plain\r\n
Content-Length: 19\r\n
\r\n
Hi! I'm a message!

HTTP和TCP的關(guān)系

HTTP協(xié)議是建立在TCP協(xié)議之上的,上面我們所看到的請(qǐng)求和響應(yīng)報(bào)文,對(duì)于TCP來(lái)說(shuō)就是一串網(wǎng)絡(luò)字節(jié)流。 我們后面的代碼會(huì)加深你對(duì)于這句話的理解了。這里使用Java語(yǔ)言來(lái)進(jìn)行編程,在Java中使用TCP編程,主要就是使用Java提供的Socket 套接字,也就是 Socket 和 ServerSocket 兩個(gè)類。

總結(jié)

這里主要就是簡(jiǎn)略介紹一下需要的概念知識(shí)和需要具備的編程能力。

1.了解網(wǎng)絡(luò)分層的概念,知道HTTP和TCP的關(guān)系。

2.了解HTTP報(bào)文的結(jié)構(gòu)特點(diǎn)。

3.具備Socket和ServerSocket編程的能力。

到此這篇關(guān)于Java Http的基礎(chǔ)概念了解的文章就介紹到這了,更多相關(guān)Http基礎(chǔ)概念內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java Spring數(shù)據(jù)單元配置過(guò)程解析

    Java Spring數(shù)據(jù)單元配置過(guò)程解析

    這篇文章主要介紹了Java Spring數(shù)據(jù)單元配置過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • java判斷請(qǐng)求是來(lái)自PC端還是手機(jī)端小技巧

    java判斷請(qǐng)求是來(lái)自PC端還是手機(jī)端小技巧

    這篇文章主要為大家介紹了java判斷請(qǐng)求是來(lái)自PC端還是手機(jī)端小技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • springBoot整合shiro如何解決讀取不到@value值問(wèn)題

    springBoot整合shiro如何解決讀取不到@value值問(wèn)題

    這篇文章主要介紹了springBoot整合shiro如何解決讀取不到@value值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,
    2023-08-08
  • SpringBoot使用hutool-captcha實(shí)現(xiàn)驗(yàn)證碼生成與驗(yàn)證

    SpringBoot使用hutool-captcha實(shí)現(xiàn)驗(yàn)證碼生成與驗(yàn)證

    在springboot的登陸頁(yè)面中為了防止機(jī)器大規(guī)模注冊(cè),機(jī)器暴力破解數(shù)據(jù)密碼等危害,需要驗(yàn)證隨機(jī)生成的驗(yàn)證碼,本文主要介紹了SpringBoot使用hutool-captcha實(shí)現(xiàn)驗(yàn)證碼生成與驗(yàn)證,感興趣的可以了解一下
    2023-12-12
  • spring+maven實(shí)現(xiàn)郵件發(fā)送

    spring+maven實(shí)現(xiàn)郵件發(fā)送

    這篇文章主要為大家詳細(xì)介紹了spring+maven實(shí)現(xiàn)郵件發(fā)送,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 手工體驗(yàn)smtp和pop3協(xié)議 郵件實(shí)現(xiàn)詳解(二)

    手工體驗(yàn)smtp和pop3協(xié)議 郵件實(shí)現(xiàn)詳解(二)

    POP3/IMAP協(xié)議定義了郵件客戶端軟件和POP3郵件服務(wù)器的通信規(guī)則,這篇文章我們就來(lái)手工體驗(yàn)SMTP和POP3協(xié)議的奧秘,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Java獲取Object中Value的實(shí)現(xiàn)方法

    Java獲取Object中Value的實(shí)現(xiàn)方法

    本文介紹了在Java中獲取對(duì)象屬性值的幾種常見(jiàn)方法,包括使用反射機(jī)制、getter方法、接口或抽象類、Map數(shù)據(jù)結(jié)構(gòu)、序列化與反序列化以及JavaBeans規(guī)范,每種方法都有其適用場(chǎng)景和優(yōu)缺點(diǎn),選擇合適的方法取決于具體需求
    2025-03-03
  • Java圖形化編程之JFrame疫苗接種系統(tǒng)詳解

    Java圖形化編程之JFrame疫苗接種系統(tǒng)詳解

    GUI圖形界面設(shè)計(jì)是用戶和程序交互的工具,用戶通過(guò)圖形界面控制程序事件的發(fā)生。首先介紹Swing的基本體系結(jié)構(gòu),這是底層
    2021-09-09
  • 詳解SpringBoot是如何整合JPA的

    詳解SpringBoot是如何整合JPA的

    借助于開(kāi)發(fā)框架,我們已經(jīng)不用編寫原始的訪問(wèn)數(shù)據(jù)庫(kù)的代碼,也不用調(diào)用JDBC或者連接池等諸如此類的被稱作底層的代碼,我們將從更高的層次上訪問(wèn)數(shù)據(jù)庫(kù),本章我們將詳細(xì)介紹在Springboot中使用 Spring Data JPA 來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作,需要的朋友可以參考下
    2021-06-06
  • Spring AOP統(tǒng)一功能處理示例代碼

    Spring AOP統(tǒng)一功能處理示例代碼

    AOP面向切面編程,它是一種思想,它是對(duì)某一類事情的集中處理,而AOP是一種思想,而Spring AOP是一個(gè)框架,提供了一種對(duì)AOP思想的實(shí)現(xiàn),它們的關(guān)系和loC與DI類似,這篇文章主要介紹了Spring AOP統(tǒng)一功能處理示例代碼,需要的朋友可以參考下
    2023-01-01

最新評(píng)論

扎兰屯市| 常州市| 曲沃县| 隆安县| 天津市| 延庆县| 南丰县| 修武县| 卢龙县| 佛冈县| 肃宁县| 临泉县| 新密市| 乳山市| 许昌县| 平阴县| 佛冈县| 金寨县| 龙山县| 十堰市| 英德市| 望城县| 东方市| 海宁市| 灵丘县| 嘉义市| 外汇| 西宁市| 江孜县| 余干县| 临沭县| 额敏县| 张掖市| 安龙县| 巴林左旗| 中阳县| 涿鹿县| 青川县| 迁西县| 油尖旺区| 广宁县|