HTTP簡單教程

来源:https://www.cnblogs.com/lmg1/archive/2018/08/07/9434504.html
-Advertisement-
Play Games

目錄 HTTP簡介 HTTP工作原理 HTTP消息結構 客戶端請求消息 伺服器響應消息 實例 HTTP請求方法 HTTP響應頭信息 HTTP狀態碼 HTTP狀態碼分類 HTTP狀態碼列表 HTTP content-type對照表 HTTP簡介 HTTP協議是Hyper Text Transfer P ...


目錄

HTTP簡介

HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用於從萬維網伺服器傳輸超文本到本地瀏覽器的傳輸協議。
HTTP是一個基於TCP/IP通信協議來傳遞數據的(HTML文件、圖片文件、查詢結果等)。

HTTP工作原理

HTTP協議工作於客戶端-服務端架構上。瀏覽器作為HTTP客戶端通過URL向HTTP服務端即WEB伺服器發送請求。
Web伺服器有:Apache伺服器,IIS伺服器,Tomcat伺服器等。
Web伺服器器根據接收到的請求,向客戶端發送響應消息。
HTTP預設埠號為80,但是也可以更改為其它埠。

HTTP註意事項:

HTTP是無連接:限制每次連接只處理一個請求,伺服器處理完客戶的請求 ,並接收到客戶的應答後即斷開連接,採用這種方式可以節省傳輸時間。
HTTP是媒體獨立的:意味著只要客戶端和伺服器知道如何處理的數據內容,任何類型的數據都可以通過HTTP發送。客戶端以及伺服器指定使用適合的MIME-type內容類型。
HTTP是無狀態的:HTTP協議是無狀態協議。意指協議對事物處理沒有記憶能力。如果後續處理需要前面的信息則他必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在伺服器不需要先前信息時,它的應答就比較快。

HTTP協議通信流程


HTTP消息結構

HTTP是基於客戶端/服務端(C/S)的架構模型,通過一個可靠的鏈接來交換信息,是一個無狀態的請求/響應協議。
一個HTTP“客戶端”是一個應用程式(Web瀏覽器或其他任何客戶端),通過連接到伺服器向伺服器發送HTTP請求。
一個HTTP“伺服器”同樣也是一個應用程式(通常是一個Web服務,如Apache Web伺服器或IIS伺服器或Tomcat伺服器等),通過接收客戶端的請求並向客戶端發送HTTP響應數據。
HTTP使用同一的資源標識符(Uniform Resource Identifiers, URI)來傳輸數據和建立連接。一旦建立連接後,數據消息就通過類似Internet郵件使用的格式RFC5322 和多用途Internet郵件擴展(MIME)RFC2045 來傳送。

客戶端請求消息

客戶端發送一個HTTP請求到伺服器的請求消息包括以下格式:請求行(request line)、請求頭部(header)、空行和請求數據四個部分組成,下圖給出了請求報文的一般格式。
HTTP請求報文格式

伺服器響應消息

HTTP響應也由四個部分組成,分別是:狀態行、消息報頭、空行和響應正文。
HTTP伺服器響應消息

實例

下麵實例是一典型的使用GET來傳遞數據的實例:
客戶端請求:

GET /hello.txt HTTP/1.1
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
Host: www.example.com
Accept-Language: en,mi

服務端請求:

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: “34aa387-d-1568eb00”
Accept-Ranges: bytes
Content-Length: 51
Vary: Accept-Encoding
Content-Type: text/plain

輸出結果:

Hello World! My payload includes a trailing CRLF.


HTTP請求方法

根據HTTP標準,HTTP請求可以使用多種請求方法。
HTTP1.0定義了三種請求方法:GETPOSTHEAD方法。
HTTP1.1新增了五種請求方法:OPTIONSPUTDELETETRACECONNECT方法。

序號 方法 描述
1 GET 請求指定的頁面信息,並返回實體主體
2 HEAD 類似於get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭
3 POST 向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST請求可能會導致新的資源的建立或已有的資源的修改
4 PUT 從客戶端向伺服器傳送的數據取代指定的文檔的內容
5 DELETE 請求伺服器刪除指定的頁面
6 CONNECT HTTP/1.1協議中預留給能夠將連接改為管道方式的代理伺服器
7 OPTIONS 允許客戶端查看伺服器的性能
8 TRACE 回顯伺服器收到的請求,主要用於測試或診斷

HTTP響應頭信息

HTTP請求頭提供了關於請求,響應或者其他的發送實體的信息。

應答頭 說明
Content-Encoding 文檔的編碼(Encode)方法。解碼後才可以得到Content-Type頭指定的內容類型。
Content-Length 表示內容長度。只有當瀏覽器使用HTTP連接時才需要這個數據。例如,下載數據時,通過它查看位元組大小
Content-Type 表示後面的文檔是屬於什麼MIME類型。Servlet預設為text/plain,但最好顯式指出
Date 當前的GMT時間(格林威治時間)
Expires 表示在什麼時候認為文檔已經過期,從而不再緩存它
Last-Modified 文檔的最後改動時間
Location 文檔位置,表示客戶端應該到那提取文檔
Refresh 表示瀏覽器應該在多少時間後刷新文檔或頁面(只一次,非重覆),以秒計。Refresh不屬於HTTP1.1正式規範中,而是一個擴展,但Netscape和IE都支持它
Server 伺服器名字
Set-Cookie 設置頁面相關的Cookie
WWWW-Authenticate 表示客戶端需要在其中提供某類型的授權信息。例如,在包含401狀態行的應答中,這個頭就需要設置

HTTP狀態碼

當瀏覽者訪問一個網頁時,瀏覽者的瀏覽器會向網頁所在伺服器發出請求。當瀏覽器接收並顯示網頁前,此網頁的所在的伺服器會返回一個包含HTTP狀態碼(HTTP Status Code)的信息頭(server header)用以響應瀏覽器的請求。
下麵是常見的HTTP狀態碼:

  • 200 - 請求成功
  • 301 - 資源(網頁等)被永久轉移到其他URL
  • 404 - 請求的資源(網頁等)不存在
  • 500 - 內部伺服器錯誤

HTTP狀態碼分類

HTTP狀態碼由三個十進位數字組成,第一個十進位數字定義了狀態碼的類型。
HTTP狀態碼分類:

分類 描述
1** 信息,伺服器收到請求,需要請求者繼續執行操作
2** 成功,操作被成功接收並處理
3** 重定向,需要進一步的操作以完成請求
4** 客戶端錯誤,請求包含語法錯誤或無法完成請求
5** 伺服器錯誤,伺服器在處理請求的過程中發生了錯誤

HTTP狀態碼列表

狀態 狀態碼英文名稱 中文描述
100 Continue 繼續。客戶端應繼續其請求
101 Switching Protocol 切換協議。伺服器根據客戶端的請求切換協議。只能切換到更高級的協議,例如,切換到HTTP的新版本協議
200 OK 請求成功。一般用於GET與POST請求
201 Created 已創建。成功請求並創建了新的資源
202 Accepted 已接受。已經接受了請求,但未處理完成
203 Non-Authoritative Information 非授權信息。請求成功,但返回的meta信息不再原始的伺服器器,而是一個副本
204 No Content 無內容。伺服器成功處理,但未返回內容。未更新網頁的情況下,可確保瀏覽器繼續顯示檔期那文檔
205 Rest Content 重置內容。伺服器處理成功,用戶終端(例如:瀏覽器)應重置文檔視圖。可通過此返回碼清除瀏覽器的表單域
206 Partial Choices 部分內容。伺服器成功處理了部分GET請求
300 Multiple Choices 多種選擇。請求的資源可包括多個位置,相應可返回一個資源特征與地址的列表用於用戶終端(例如:瀏覽器)選擇
301 Move Permanently 永久移動。請求的資源已被永久的移動到新URI,返回信息會包括新的URI,瀏覽器會自動定向到新的URI。今後任何新的請求都應使用新的URI代替
302 Found 臨時移動。與301類似。但資源只是臨時被移動,客戶端應繼續使用原有URI
303 See Other 查看其它地址。與301類似。使用GET和POST請求查看
304 Not Modified 未修改。所請求的資源未修改,伺服器返回此狀態碼時,不會返回任何資源
305 Use Proxy 使用代理。所請求的資源必須通過代理訪問
306 Unused 已經被廢棄的HTTP狀態碼
307 Temporary Redirect 臨時重定向。與302類似。使用GET請求重定向
400 Bad Request 客戶端請求的語法錯誤,伺服器無法理解
401 Unauthorized 請求要求用戶的身份認證
402 Payment Required 保留,將來使用
403 Forbidden 伺服器理解請求客戶端的請求,但是拒絕在執行此請求
404 Not Found 伺服器複發根據客戶端的請求找到資源(網頁等)。通過此代碼,網站設計人員可設置“您所請求的資源無法找到”的個性頁面
405 Method Not Allowed 客戶端請求中的方法被禁止
406 Not Acceptable 伺服器無法根據請求的內容特性完成請求
407 Proxy Authentication Required 請求要求代理的身份認證,與401類似。但請求這應當使用代理進行授權
408 Request Time-out 超時。伺服器等待客戶端發送的請求時間過長
409 Conflict 伺服器處理請求發送了衝突。伺服器完成客戶端的PUT請求是可能返回此代碼
410 Gone 客戶端請求的資源已經不存在。不同於404,如果資源以前有現在被永久刪除了可使用該狀態碼,網站設計人員可通過301代碼指定資源的新位置
411 Length Required 伺服器無法處理客戶端發送的不帶Content-Length的請求信息
412 Precondition Failed 客戶端請求的先決條件錯誤
413 Request Entity Too Large 由於請求的實體過大,伺服器無法處理,因此拒絕請求。為防止客戶端的連續請求,伺服器可能會關閉連接。如果只是伺服器暫時無法處理,則會包含一個Retry-After的響應信息
413 Request-URI Too Large 要求的URI過長(URI通常為網址),伺服器無法處理
415 Unsupported Media Type 伺服器無法處理請求附帶的媒體格式
416 Requested range not satisfiable 客戶端請求的範圍無效
417 Expectation Failed 伺服器無法滿足Expect的請求頭信息
500 Internal Server Error 伺服器內部錯誤。無法完成請求
501 Not Implemented 伺服器不支持請求的工程,無法完成請求
502 Bad Gateway 充當網關或代理的伺服器,從遠端伺服器接收到了一個無效的請求
503 Services Unavailable 由於超載或系統維護,伺服器暫時的方無法處理客戶端的請求
504 Gateway Time-out 充當網管或代理的伺服器,未及時從遠端伺服器獲取請求
505 HTTP Version not supported 伺服器不知請求的HTTP協議的版本,無法完成處理

HTTP content-type對照表

文件擴展名 Content-Type(Mime-Type) 文件擴展名 Content-Type(Mime-Type)
.*( 二進位流,不知道下載文件類型) application/octet-stream .tif image/tiff
.001 application/x-001 .301 application/x-301
.323 text/h323 .906 application/x-906
.907 drawing/907 .a11 application/x-a11
.acp audio/x-mei-aac .ai application/postscript
.aif audio/aiff .aifc audio/aiff
.aiff audio/aiff .anv application/x-anv
.asa text/asa .asf video/x-ms-asf
.asp text/asp .asx video/x-ms-asf
.au audio/basic .avi video/avi
.awf application/vnd.adobe.workflow .biz text/xml
.bmp application/x-bmp .bot application/x-bot
.c4t application/x-c4t .c90 application/x-c90
.cal application/x-cals .cat application/vnd.ms-pki.seccat
.cdf application/x-netcdf .cdr application/x-cdr
.cel application/x-cel .cer application/x-x509-ca-cert
.cg4 application/x-g4 .cgm application/x-cgm
.cit application/x-cit .class java/*
.cml text/xml .cmp application/x-cmp
.cmx application/x-cmx .cot application/x-cot
.crl application/pkix-crl .crt application/x-x509-ca-cert
.csi application/x-csi .css text/css
.cut application/x-cut .dbf application/x-dbf
.dbm application/x-dbm .dbx application/x-dbx
.dcd text/xml .dcx application/x-dcx
.der application/x-x509-ca-cert .dgn application/x-dgn
.dib application/x-dib .dll application/x-msdownload
.doc application/msword .dot application/msword
.drw application/x-drw .dtd text/xml
.dwf Model/vnd.dwf .dwf application/x-dwf
.dwg application/x-dwg .dxb application/x-dxb
.dxf application/x-dxf .edn application/vnd.adobe.edn
.emf application/x-emf .eml message/rfc822
.ent text/xml .epi application/x-epi
.eps application/x-ps .eps application/postscript
.etd application/x-ebx .exe application/x-msdownload
.fax image/fax .fdf application/vnd.fdf
.fif application/fractals .fo text/xml
.frm application/x-frm .g4 application/x-g4
.gbr application/x-gbr . application/x-
.gif image/gif .gl2 application/x-gl2
.gp4 application/x-gp4 .hgl application/x-hgl
.hmr application/x-hmr .hpg application/x-hpgl
.hpl application/x-hpl .hqx application/mac-binhex40
.hrf application/x-hrf .hta application/hta
.htc text/x-component .htm text/html
.html text/html .htt text/webviewhtml
.htx text/html .icb application/x-icb
.ico image/x-icon .ico application/x-ico
.iff application/x-iff .ig4 application/x-g4
.igs application/x-igs .iii application/x-iphone
.img application/x-img .ins application/x-internet-signup
.isp application/x-internet-signup .IVF video/x-ivf
.java java/* .jfif image/jpeg
.jpe image/jpeg .jpe application/x-jpe
.jpeg image/jpeg .jpg image/jpeg
.jpg application/x-jpg .js application/x-javascript
.jsp text/html .la1 audio/x-liquid-file
.lar application/x-laplayer-reg .latex application/x-latex
.lavs audio/x-liquid-secure .lbm application/x-lbm
.lmsff audio/x-la-lms .ls application/x-javascript
.ltr application/x-ltr .m1v video/x-mpeg
.m2v video/x-mpeg .m3u audio/mpegurl
.m4e video/mpeg4 .mac application/x-mac
.man application/x-troff-man .math text/xml
.mdb application/msaccess .mdb application/x-mdb
.mfp application/x-shockwave-flash .mht message/rfc822
.mhtml message/rfc822 .mi application/x-mi
.mid audio/mid .midi audio/mid
.mil application/x-mil .mml text/xml
.mnd audio/x-musicnet-download .mns audio/x-musicnet-stream
.mocha application/x-javascript .movie video/x-sgi-movie
.mp1 audio/mp1 .mp2 audio/mp2
.mp2v video/mpeg .mp3 audio/mp3
.mp4 video/mpeg4 .mpa video/x-mpg
.mpd application/vnd.ms-project .mpe video/x-mpeg
.mpeg video/mpg .mpg video/mpg
.mpga audio/rn-mpeg .mpp application/vnd.ms-project
.mps video/x-mpeg .mpt application/vnd.ms-project
.mpv video/mpg .mpv2 video/mpeg
.mpw application/vnd.ms-project .mpx application/vnd.ms-project
.mtx text/xml .mxp application/x-mmxp
.net image/pnetvue .nrf application/x-nrf
.nws message/rfc822 .odc text/x-ms-odc
.out application/x-out .p10 application/pkcs10
.p12 application/x-pkcs12 .p7b application/x-pkcs7-certificates
.p7c application/pkcs7-mime .p7m application/pkcs7-mime
.p7r application/x-pkcs7-certreqresp .p7s application/pkcs7-signature
.pc5 application/x-pc5 .pci application/x-pci
.pcl application/x-pcl .pcx application/x-pcx
.pdf application/pdf .pdf application/pdf
.pdx application/vnd.adobe.pdx .pfx application/x-pkcs12
.pgl application/x-pgl .pic application/x-pic
.pko application/vnd.ms-pki.pko .pl application/x-perl
.plg text/html .pls audio/scpls
.plt application/x-plt .png image/png
.png application/x-png .pot application/vnd.ms-powerpoint
.ppa application/vnd.ms-powerpoint .ppm application/x-ppm
.pps application/vnd.ms-powerpoint .ppt application/vnd.ms-powerpoint
.ppt application/x-ppt .pr application/x-pr
.prf application/pics-rules .prn application/x-prn
.prt application/x-prt .ps application/x-ps
.ps application/postscript .ptn application/x-ptn
.pwz application/vnd.ms-powerpoint .r3t text/vnd.rn-realtext3d
.ra audio/vnd.rn-realaudio .ram audio/x-pn-realaudio
.ras application/x-ras .rat application/rat-file
.rdf text/xml .rec application/vnd.rn-recording
.red application/x-red .rgb application/x-rgb
.rjs application/vnd.rn-realsystem-rjs .rjt application/vnd.rn-realsystem-rjt
.rlc application/x-rlc .rle application/x-rle
.rm application/vnd.rn-realmedia .rmf application/vnd.adobe.rmf
.rmi audio/mid .rmj application/vnd.rn-realsystem-rmj
.rmm audio/x-pn-realaudio .rmp application/vnd.rn-rn_music_package
.rms application/vnd.rn-realmedia-secure .rmvb application/vnd.rn-realmedia-vbr
.rmx application/vnd.rn-realsystem-rmx .rnx application/vnd.rn-realplayer
.rp image/vnd.rn-realpix .rpm audio/x-pn-realaudio-plugin
.rsml application/vnd.rn-rsml .rt text/vnd.rn-realtext
.rtf application/msword .rtf application/x-rtf
.rv video/vnd.rn-realvideo .sam application/x-sam
.sat application/x-sat .sdp application/sdp
.sdw application/x-sdw .sit application/x-stuffit
.slb application/x-slb .sld application/x-sld
.slk drawing/x-slk .smi application/smil
.smil application/smil .smk application/x-smk
.snd audio/basic .sol text/plain
.sor text/plain .spc application/x-pkcs7-certificates
.spl application/futuresplash .spp text/xml
.ssm application/streamingmedia .sst application/vnd.ms-pki.certstore
.stl application/vnd.ms-pki.stl .stm text/html
.sty application/x-sty .svg text/xml
.swf application/x-shockwave-flash .tdf application/x-tdf
.tg4 application/x-tg4 .tga application/x-tga
.tif image/tiff .tif application/x-tif
.tiff image/tiff .tld text/xml
.top drawing/x-top .torrent application/x-bittorrent
.tsd text/xml .txt text/plain
.uin application/x-icq .uls text/iuls
.vcf text/x-vcard .vda application/x-vda
.vdx application/vnd.visio .vml text/xml
.vpg application/x-vpeg005 .vsd application/vnd.visio
.vsd application/x-vsd .vss application/vnd.visio
.vst application/vnd.visio .vst application/x-vst
.vsw application/vnd.visio .vsx application/vnd.visio
.vtx application/vnd.visio .vxml text/xml
.wav audio/wav .wax audio/x-ms-wax
.wb1 application/x-wb1 .wb2 application/x-wb2
.wb3 application/x-wb3 .wbmp image/vnd.wap.wbmp
.wiz application/msword .wk3 application/x-wk3
.wk4 application/x-wk4 .wkq application/x-wkq
.wks application/x-wks .wm video/x-ms-wm
.wma audio/x-ms-wma .wmd application/x-ms-wmd
.wmf application/x-wmf .wml text/vnd.wap.wml
.wmv video/x-ms-wmv .wmx video/x-ms-wmx
.wmz application/x-ms-wmz .wp6 application/x-wp6
.wpd application/x-wpd .wpg application/x-wpg
.wpl application/vnd.ms-wpl .wq1 application/x-wq1
.wr1 application/x-wr1 .wri application/x-wri
.wrk application/x-wrk .ws application/x-ws
.ws2 application/x-ws .wsc text/scriptlet
.wsdl text/xml .wvx video/x-ms-wvx
.xdp application/vnd.adobe.xdp .xdr text/xml
.xfd application/vnd.adobe.xfd .xfdf application/vnd.adobe.xfdf
.xhtml text/html .xls application/vnd.ms-excel
.xls application/x-xls .xlw application/x-xlw
.xml text/xml .xpl audio/scpls
.xq text/xml .xql text/xml
.xquery text/xml .xsd text/xml
.xsl text/xml .xslt text/xml
.xwd application/x-xwd .x_b application/x-x_b
.sis application/vnd.symbian.install .sisx application/vnd.symbian.install
.x_t application/x-x_t .ipa application/vnd.iphone
.apk application/vnd.android.package-archive .xap application/x-silverlight-app

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 引言 在《iPhone User Guide for iOS 11.4》這本書中,介紹了iOS11的新特性。其中在Safari的章節中,介紹了Fill in forms。也就是當你在網頁登錄、註冊以及購買的時候,用戶可以通過鍵盤來填充網頁的表單、或者是Safari自己填充(前提是你開啟了AutoFi ...
  • 環信EaseUI 集成,集成不做描述,看文檔即可,下麵主要談一些對easeui的個性化需求修改。 一、如何將App用戶體系的用戶名和用戶頭像 顯示於環信的easeui 這個問題是所有人都想解決的,集成easeui之後 ,雖然大部分功能給我們做好了,但是他是顯示的環信用戶體系的用戶名和預設的頭像。 這 ...
  • 一.前言 我們一定心裡有個疑問,我們那個多態是怎麼回事?我們指定的一個介面,卻可以等到運行時可以對應於不同的實現類。這是因為,Java有個特性就是依賴運行期動態載入和動態連接,這樣實現了Java可以動態進行擴展。我們甚至可以從網路或者其他的地方載入一個二進位流作為程式的一部分。所以,我們通過編譯器將 ...
  • 將項目改成Module 打包混淆腳本 混淆配置proguard-rules.pro文件 開始打包 ...
  • 在做android圖片載入的時候,由於手機屏幕受限,很多大圖載入過來的時候,我們要求等比例縮放,比如按照固定的寬度,等比例縮放高度,使得圖片的尺寸比例得到相應的縮放,但圖片沒有變形。顯然按照android:scaleType不能實現,因為會有很多限制,所以必須要自己寫演算法。 通過Glide來縮放 其 ...
  • Glide是一個快速高效的多媒體管理和圖像載入的框架,封裝了Android平臺的多媒體的解碼,記憶體和硬碟緩存等,Glide支持解碼、顯示視頻、圖像和GIFs,Glide是基於定製的HttpUrlConnection,下麵是關於Glide的配置和使用。 Glide的配置 配置很簡單,只要在Module ...
  • Android常用許可權 ...
  • 一.概述 我們在進行 Java 開發的時候,很少關心 Java 的記憶體分配等等,因為這些活都讓 JVM 給我們做了。不僅自動給我們分配記憶體,還有自動的回收無需再占用的記憶體空間,以騰出記憶體供其他人使用。但是我們經常面臨的一個問題就是記憶體泄漏,JVM無法完成回收工作,導致記憶體占用暴漲,最後可能讓程式奔潰 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...