0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

通信協(xié)議中的HTTP、TCP、UDP你了解多少(上)

jf_78858299 ? 來源:Java架構(gòu)技術(shù) ? 作者:Java架構(gòu)技術(shù) ? 2023-02-13 14:19 ? 次閱讀

TCP HTTP UDP:

都是通信協(xié)議,也就是通信時(shí)所遵守的規(guī)則,只有雙方按照這個(gè)規(guī)則“說話”,對(duì)方才能理解或?yàn)橹?wù)。

TCP HTTP UDP三者的關(guān)系:

TCP/IP是個(gè)協(xié)議組,可分為四個(gè)層次:網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。

在網(wǎng)絡(luò)層有IP協(xié)議、ICMP協(xié)議、ARP協(xié)議、RARP協(xié)議和BOOTP協(xié)議。

在傳輸層中有TCP協(xié)議與UDP協(xié)議。

在應(yīng)用層有FTP、HTTP、TELNET、SMTP、DNS等協(xié)議。

因此,HTTP本身就是一個(gè)協(xié)議,是從Web服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議。

socket:

這是為了實(shí)現(xiàn)以上的通信過程而建立成來的通信管道,其真實(shí)的代表是客戶端和服務(wù)器端的一個(gè)通信進(jìn)程,雙方進(jìn)程通過socket進(jìn)行通信,而通信的規(guī)則采用指定的協(xié)議。socket只是一種連接模式,不是協(xié)議,tcp、udp,簡單的說(雖然不準(zhǔn)確)是兩個(gè)最基本的協(xié)議,很多其它協(xié)議都是基于這兩個(gè)協(xié)議如,http就是基于tcp的,.用socket可以創(chuàng)建tcp連接,也可以創(chuàng)建udp連接,這意味著,用socket可以創(chuàng)建任何協(xié)議的連接,因?yàn)槠渌鼌f(xié)議都是基于此的。

下面我們主要來看一下和我們互聯(lián)網(wǎng)生活密切相關(guān)的協(xié)議:HTTP

什么是Http協(xié)議

HTTP全稱是HyperText Transfer Protocal,即:超文本傳輸協(xié)議,從1990年開始就在WWW上廣泛應(yīng)用,是現(xiàn)今在WWW上應(yīng)用最多的協(xié)議, Http是應(yīng)用層協(xié)議,當(dāng)你上網(wǎng)瀏覽網(wǎng)頁的時(shí)候,瀏覽器和Web服務(wù)器之間就會(huì)通過HTTP在Internet上進(jìn)行數(shù)據(jù)的發(fā)送和接收。Http是一個(gè)基于請(qǐng)求/響應(yīng)模式的、無狀態(tài)的協(xié)議。即我們通常所說的Request/Response。

URL:

URL(Uniform Resource Locator) 地址用于描述一個(gè)網(wǎng)絡(luò)上的資源, 基本格式如下

schema://host[:port#]/path/…/[?query-string][#anchor]

scheme 指定低層使用的協(xié)議(例如:http, https, ftp)

host HTTP服務(wù)器的IP地址或者域名

port# HTTP服務(wù)器的默認(rèn)端口是80,這種情況下端口號(hào)可以省略。如果使用了別的端口,必須指明,例如 http://www.cnblogs.com:8080/

path 訪問資源的路徑

query-string 發(fā)送給http服務(wù)器的數(shù)據(jù)

anchor- 錨

URL 的一個(gè)例子

http://www.mywebsite.com/sj/test/test.aspx?name=sviergn&x=true#stuff

Schema: http

host: www.mywebsite.com

path: /sj/test/test.aspx

Query String: name=sviergn&x=true

Anchor: stuff

HTTP的Request/Response:

先看Request 消息的結(jié)構(gòu), Request 消息分為3部分

第一部分叫Request line,

第二部分叫Request header,

第三部分是body. header和body之間有個(gè)空行,

結(jié)構(gòu)如下圖

第一行中的Method表示請(qǐng)求方法,比如”POST”,”GET”, Path-to-resoure表示請(qǐng)求的資源, Http/version-number 表示HTTP協(xié)議的版本號(hào)

當(dāng)使用的是”GET” 方法的時(shí)候, body是為空的

比如我們打開博客園首頁的request 如下

GET http://www.cnblogs.com/ HTTP/1.1

Host: www.cnblogs.com

抽象的東西,難以理解,老感覺是虛的, 所謂眼見為實(shí), 實(shí)際見到的東西,我們才能理解和記憶。 我們今天用Fiddler,實(shí)際的看看Request和Response.

下面我們打開Fiddler 捕捉一個(gè)博客園登錄的Request 然后分析下它的結(jié)構(gòu), 在Inspectors tab下以Raw的方式可以看到完整的Request的消息,

如下圖

圖片

Accept

作用: 瀏覽器端可以接受的媒體類型,

例如: Accept: text/html 代表瀏覽器可以接受服務(wù)器回發(fā)的類型為 text/html 也就是我們常說的html文檔,

如果服務(wù)器無法返回text/html類型的數(shù)據(jù),服務(wù)器應(yīng)該返回一個(gè)406錯(cuò)誤(non acceptable)

通配符 * 代表任意類型

例如 Accept: / 代表瀏覽器可以處理所有類型,(一般瀏覽器發(fā)給服務(wù)器都是發(fā)這個(gè))

Referer:

作用: 提供了Request的上下文信息的服務(wù)器,告訴服務(wù)器我是從哪個(gè)鏈接過來的,比如從我主頁上鏈接到一個(gè)朋友那里,他的服務(wù)器就能夠從HTTP Referer中統(tǒng)計(jì)出每天有多少用戶點(diǎn)擊我主頁上的鏈接訪問他的網(wǎng)站。

例如: Referer:http://translate.google.cn/?hl=zh-cn&tab=wT

Accept-Language

作用: 瀏覽器申明自己接收的語言。

語言跟字符集的區(qū)別:中文是語言,中文有多種字符集,比如big5,gb2312,gbk等等;

例如: Accept-Language: en-us

Content-Type

作用:

例如:Content-Type: application/x-www-form-urlencoded

Accept-Encoding:

作用: 瀏覽器申明自己接收的編碼方法,通常指定壓縮方法,是否支持壓縮,支持什么壓縮方法(gzip,deflate),(注意:這不是只字符編碼);

例如: Accept-Encoding: gzip, deflate

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 通信協(xié)議
    +關(guān)注

    關(guān)注

    28

    文章

    840

    瀏覽量

    40215
  • HTTP
    +關(guān)注

    關(guān)注

    0

    文章

    499

    瀏覽量

    30978
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1347

    瀏覽量

    78933
  • UDP
    UDP
    +關(guān)注

    關(guān)注

    0

    文章

    322

    瀏覽量

    33849
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    通信必備知識(shí)!TCPUDP協(xié)議介紹及使用

    協(xié)議,它在數(shù)據(jù)傳輸之前不需要建立連接。發(fā)送端可以直接將數(shù)據(jù)報(bào)文(數(shù)據(jù)段)扔到網(wǎng)絡(luò),而接收端則從網(wǎng)絡(luò)接收數(shù)據(jù),并從消息隊(duì)列讀取數(shù)據(jù)段。UDP
    的頭像 發(fā)表于 03-15 08:19 ?1696次閱讀
    <b class='flag-5'>通信</b>必備知識(shí)!<b class='flag-5'>TCP</b>與<b class='flag-5'>UDP</b><b class='flag-5'>協(xié)議</b>介紹及使用

    TCP通信協(xié)議-Labview上位機(jī)

    現(xiàn)在用單片機(jī)進(jìn)行信息采集,通過GPRS模塊上傳到PC,用Labview做上位機(jī),TCP通信協(xié)議,想請(qǐng)教一下,TCP通信協(xié)議和Modbus TCP
    發(fā)表于 12-10 08:58

    TCPUDP協(xié)議區(qū)別

    組成員關(guān)系。TCP傳輸控制協(xié)議(Transmission Control Protocol)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議UDP用戶數(shù)據(jù)報(bào)
    發(fā)表于 03-23 10:12

    TCPUDP的區(qū)別分析

      傳輸層協(xié)議主要有TCPUDPUDP提供無連接的通信,不能保證數(shù)據(jù)包被發(fā)送到目標(biāo)地址,典型的即時(shí)傳輸少量數(shù)據(jù)的應(yīng)用程序通常使用
    發(fā)表于 09-18 10:29 ?2次下載

    如何使用Socket實(shí)現(xiàn)TCPUDP的原理探索

    Socket是傳輸層提供的網(wǎng)絡(luò)進(jìn)程通信接口。它封裝了通信協(xié)議族系的不同、同一族系傳輸層不同協(xié)議的差別。用戶可以為Socket 機(jī)制選取不同的參數(shù),使Socket機(jī)制支持不同族系的通信協(xié)議
    發(fā)表于 11-28 11:54 ?9次下載
    如何使用Socket實(shí)現(xiàn)<b class='flag-5'>TCP</b>和<b class='flag-5'>UDP</b>的原理探索

    tcpudp協(xié)議的異同

    。UDP 校驗(yàn)和則是包含 UDP 首部和數(shù)據(jù)在內(nèi)的校驗(yàn)結(jié)果。 TCP協(xié)議 TCP協(xié)議基于網(wǎng)絡(luò)層的
    的頭像 發(fā)表于 11-12 14:45 ?3984次閱讀
    <b class='flag-5'>tcp</b>和<b class='flag-5'>udp</b><b class='flag-5'>協(xié)議</b>的異同

    TCP協(xié)議UDP協(xié)議的區(qū)別和相同點(diǎn)有哪些 一文看懂TCP協(xié)議UDP協(xié)議的優(yōu)缺點(diǎn)

    首先咱們弄清楚,TCP協(xié)議和UCP協(xié)議TCP/IP協(xié)議的聯(lián)系,很多人犯糊涂了,一直都是說TCP
    的頭像 發(fā)表于 05-26 14:35 ?9450次閱讀
    <b class='flag-5'>TCP</b><b class='flag-5'>協(xié)議</b>與<b class='flag-5'>UDP</b><b class='flag-5'>協(xié)議</b>的區(qū)別和相同點(diǎn)有哪些 一文看懂<b class='flag-5'>TCP</b><b class='flag-5'>協(xié)議</b>與<b class='flag-5'>UDP</b><b class='flag-5'>協(xié)議</b>的優(yōu)缺點(diǎn)

    通信協(xié)議HTTP、TCPUDP了解多少(下)

    我們上網(wǎng)登陸論壇的時(shí)候,往往會(huì)看到一些歡迎信息,其中列出了的操作系統(tǒng)的名稱和版本,所使用的瀏覽器的名稱和版本,這往往讓很多人感到很神奇,實(shí)際,服務(wù)器應(yīng)用程序就是從User-Agent這個(gè)請(qǐng)求
    的頭像 發(fā)表于 02-13 14:23 ?332次閱讀
    <b class='flag-5'>通信協(xié)議</b><b class='flag-5'>中</b>的<b class='flag-5'>HTTP</b>、<b class='flag-5'>TCP</b>、<b class='flag-5'>UDP</b><b class='flag-5'>你</b><b class='flag-5'>了解</b>多少(下)

    TCP協(xié)議UDP協(xié)議的區(qū)別

    TCP/IP協(xié)議中有兩個(gè)具有代表性的傳輸層協(xié)議,分別是TCP協(xié)議UDP
    的頭像 發(fā)表于 03-21 10:39 ?1144次閱讀

    一文搞明白TCP協(xié)議UDP協(xié)議

    網(wǎng)絡(luò)編程有三個(gè)要素,分別是IP地址、端口號(hào)和通信協(xié)議,那本文主要講述的是TCPUDP這兩種通信協(xié)議,以及編程的實(shí)現(xiàn)。 首先,我們需要了解
    的頭像 發(fā)表于 05-18 17:17 ?635次閱讀
    一文搞明白<b class='flag-5'>TCP</b><b class='flag-5'>協(xié)議</b>與<b class='flag-5'>UDP</b><b class='flag-5'>協(xié)議</b>(<b class='flag-5'>上</b>)

    一文搞明白TCP協(xié)議UDP協(xié)議(下)

    網(wǎng)絡(luò)編程有三個(gè)要素,分別是IP地址、端口號(hào)和通信協(xié)議,那本文主要講述的是TCPUDP這兩種通信協(xié)議,以及編程的實(shí)現(xiàn)。 首先,我們需要了解
    的頭像 發(fā)表于 05-18 17:17 ?613次閱讀
    一文搞明白<b class='flag-5'>TCP</b><b class='flag-5'>協(xié)議</b>與<b class='flag-5'>UDP</b><b class='flag-5'>協(xié)議</b>(下)

    IP地址、端口號(hào)、通信協(xié)議的相關(guān)知識(shí) TCPUDP通信協(xié)議簡述

    網(wǎng)絡(luò)編程有三個(gè)要素,分別是IP地址、端口號(hào)和通信協(xié)議。本文主要講述的是TCPUDP這兩種通信協(xié)議,以及編程的實(shí)現(xiàn)。首先,我們需要了解一下I
    的頭像 發(fā)表于 07-18 11:20 ?1837次閱讀
    IP地址、端口號(hào)、<b class='flag-5'>通信協(xié)議</b>的相關(guān)知識(shí) <b class='flag-5'>TCP</b>和<b class='flag-5'>UDP</b><b class='flag-5'>通信協(xié)議</b>簡述

    TCPUDP協(xié)議有什么區(qū)別?如何通過網(wǎng)關(guān)實(shí)現(xiàn)TCP協(xié)議通信?

    TCP協(xié)議是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,能夠保證數(shù)據(jù)從發(fā)送方到達(dá)接收方,是物聯(lián)網(wǎng)領(lǐng)域常見的通信協(xié)議之一。 TCP是面
    的頭像 發(fā)表于 01-24 11:07 ?548次閱讀
    <b class='flag-5'>TCP</b>和<b class='flag-5'>UDP</b><b class='flag-5'>協(xié)議</b>有什么區(qū)別?如何通過網(wǎng)關(guān)實(shí)現(xiàn)<b class='flag-5'>TCP</b><b class='flag-5'>協(xié)議</b><b class='flag-5'>通信</b>?

    了解清楚了嘛-TCP、HTTP、MQTT協(xié)議

    TCP、HTTP 和 MQTT 是三種不同層級(jí)和用途的協(xié)議是進(jìn)行設(shè)備互聯(lián)和傳送數(shù)據(jù)的重要組成部分;TCP適用高可靠性傳送,HTTP適用Web
    的頭像 發(fā)表于 07-11 11:34 ?2488次閱讀
    <b class='flag-5'>你</b><b class='flag-5'>了解</b>清楚了嘛-<b class='flag-5'>TCP</b>、<b class='flag-5'>HTTP</b>、MQTT<b class='flag-5'>協(xié)議</b>

    tcpudp的區(qū)別和聯(lián)系

    揮著重要作用。然而,它們?cè)谠O(shè)計(jì)、功能和性能方面存在顯著差異。 二、TCPUDP的定義 傳輸控制協(xié)議TCPTCP是一種面向連接的、可靠
    的頭像 發(fā)表于 08-16 11:06 ?487次閱讀