網絡通信介紹

一、 簡介

網絡通信,簡而言之,就是通過各種物理鏈路和協議,實現不同地理位置的計算機或其他電子設備之間信息交換的過程。這些信息可以是文本、圖像、音頻、視頻等多種格式,通過網絡傳輸至目標設備,從而實現遠程通信、資源共享、協同工作等功能

1.1 TCP/IP

1、TCP/IP是非常重要的協議,由IP和TCP兩個協議構成
2、IP(Internet Protocol)是一種低級的路由協議,無法保證所有包都能抵達目的地,也不能保證包按順序抵達
3、TCP能夠保證數據包安全地按照發送時的順序送達目的地

1.2 IP地址

每臺計算機都必須有一個與眾不同的標識,這就是IP地址,TCP/IP使用IP地址來標識源地址和目的地址

1.3 端口

1、每一臺計算機又有很多網絡通信程序在運行,提供網絡服務或進行通信,這就需要不同的端口進行通信
2、如果把IP地址比作電話號碼,那么端口就是分機號碼,在進行網絡通信時不僅需要指定IP地址,還需要指定端口號
自己開發使用1024以上的端口

###1.4 HTTP/HTTPS
1、HTTP是無連接協議,即在每一次請求時都建立連接,服務器在處理完客戶端的請求后,會先應答客戶端,然后斷開連接,不會一直占用網絡資源
2、HTTP/1.1共定義了8種請求方法:OPTIONS、GET、POST、PUT、DELETE、TRACE和CONNECT
3、HTTPS與HTTP的區別是:HTTPS使用https://代替http://,HTTPS使用端口443,而HTTP使用端口80與TCP/IP通信
4、GET方法:用于向指定的資源發出請求,被發送的信息"顯式"地跟在URL后面。它一般只用于讀取數據,例如靜態圖片等。GET方法有點像使用明信片給別人寫信,將‘信的內容’寫在外面,接觸到的人都可以看到,因此是不安全的
4、POST方法:用于向指定的資源提交數據,請求服務進行處理,例如提交表單或者上傳文件等,數據被包含在請求體中。POST方法像是把“新的內容”裝入信封中,接觸到該信封的人都看不到信的內容,因此是相對安全的

二、請求發送

get請求

發送GET請求相對簡單,你可以直接使用 urllib.request.urlopen() 方法。這個方法會打開一個URL,并返回一個HTTPResponse對象,該對象包含了服務器響應的數據

import urllib.request  
url = 'http://example.com/api/data'  
# 發送GET請求  
response = urllib.request.urlopen(url)  
# 讀取響應數據  
data = response.read().decode('utf-8')  # 將響應的二進制數據解碼為字符串  
print(data)

post請求

發送POST請求稍微復雜一些,因為你需要構建一個請求體(request body),并且可能需要設置一些HTTP頭部(比如Content-Type)。你可以使用 urllib.request.Request 類來創建一個請求對象,并使用 urllib.parse.urlencode() 來將字典數據編碼為URL編碼的字符串,用于POST請求的請求體

import urllib.request  
import urllib.parse  url = 'http://example.com/api/data'  
data = {  'key1': 'value1',  'key2': 'value2'  
}  
# 將數據編碼為URL編碼的字符串  
data_encoded = urllib.parse.urlencode(data).encode('utf-8')  
# 創建Request對象,并設置請求方法為POST,以及請求體  
req = urllib.request.Request(url, data=data_encoded, method='POST')  
# 添加HTTP頭部(如果需要)  
req.add_header('Content-Type', 'application/x-www-form-urlencoded')  
# 發送POST請求  
response = urllib.request.urlopen(req)  
# 讀取響應數據  
data = response.read().decode('utf-8')  
print(data)

字符串轉化為字節序列
params.encode()
將字節序列數據轉化為字符串
params.decode()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/46155.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/46155.shtml
英文地址,請注明出處:http://en.pswp.cn/web/46155.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

怎樣減少視頻的容量 怎樣減少視頻內存保持清晰度

在數字媒體時代,視頻內容已經成為人們日常交流和信息傳遞的重要方式。然而,視頻往往占用大量存儲空間,給我們的設備帶來不小的負擔。如何在不損失視頻質量的前提下,減少視頻文件的大小呢?本文將為你揭秘幾個實用的技巧…

Qt 使用Installer Framework制作安裝包

Qt 使用Installer Framework制作安裝包 引言一、下載安裝 Qt Installer Framework二、簡單使用2.1 創建目錄結構 (文件夾結構)2.2 制作程序壓縮包2.3 制作程序安裝包 引言 Qt Installer Framework (安裝程序框架)是一個強大的工具集,用于創建自定義的在線和離線安裝…

探索 TransactionSynchronizationManager.afterCommit 的原理及使用

在日常的企業級開發中,我們經常需要在事務提交之后執行一些操作,例如記錄日志、發送通知等。Spring 提供了一個方便的機制來實現這個需求,那就是 TransactionSynchronizationManager.afterCommit。本文將詳細探討 TransactionSynchronization…

【開發指南】HTML和JS編寫多用戶VR應用程序的框架

1.概述 Networked-Aframe 的工作原理是將實體及其組件同步到連接的用戶。要連接到房間,您需要將networked-scene組件添加到a-scene元素。對于要同步的實體,請向其添加networked組件。默認情況下,position和rotation組件是同步的,…

同三維T80004解碼器視頻使用操作說明書:高清HDMI解碼器,高清SDI解碼器,4K超清HDMI解碼器,雙路4K超高清解碼器

同三維T80004解碼器視頻使用操作說明書:高清HDMI解碼器,高清SDI解碼器,4K超清HDMI解碼器,雙路4K超高清解碼器 同三維T80004解碼器系列視頻使用操作說明書:高清HDMI解碼器,高清SDI解碼器,4K超清H…

未來的社交標桿:如何通過AI讓Facebook更加智能化?

在當今信息爆炸的時代,社交媒體平臺的智能化已成為提高用戶體驗和互動質量的關鍵因素。Facebook,作為全球最大的社交平臺之一,通過人工智能(AI)的廣泛應用,正不斷推進其智能化進程。本文將探討Facebook如何…

CAS的原理

CAS(Compare-And-Swap 或 Compare-And-Set)是一種用于實現并發編程中無鎖(lock-free)數據結構的原子操作。CAS 操作比較內存中的某個位置的當前值是否等于預期值,如果相等,則將其更新為新的值,否…

代碼隨想錄學習 54day 圖論 from代碼隨想錄

圖論總結篇 從深搜廣搜 到并查集,從最小生成樹到拓撲排序, 最后是最短路算法系列。至此算上本篇,一共30篇文章,圖論之旅就在此收官了。在0098.所有可達路徑 ,我們接觸了兩種圖的存儲方式,鄰接表和鄰接矩陣…

B樹(B-Tree)數據結構

1. 什么是B樹? B樹(B-Tree)是一種多路搜索樹,用于存儲和檢索大量數據。它是自適應的,適用于各種存儲設備和各種數據量。B樹的特點是高效的搜索、插入和刪除操作,且可以在各種情況下保持樹的平衡。 2. B樹…

昇思25天學習打卡營第16天 | Vision Transformer圖像分類

昇思25天學習打卡營第16天 | Vision Transformer圖像分類 文章目錄 昇思25天學習打卡營第16天 | Vision Transformer圖像分類Vision Transform(ViT)模型TransformerAttention模塊Encoder模塊 ViT模型輸入 模型構建Multi-Head Attention模塊Encoder模塊Pa…

工業三防平板助力工廠生產數據實時管理

在當今高度數字化和智能化的工業生產環境中,工業三防平板正逐漸成為工廠實現生產數據實時管理的得力助手。這種創新的技術設備不僅能夠在惡劣的工業環境中穩定運行,還為工廠的生產流程優化、效率提升和質量控制帶來了前所未有的機遇。 工業生產場景通常充…

機器學習——數據預處理和特征工程(sklearn)

目錄 一、數據挖掘流程 1. 獲取數據 2. 數據預處理 3. 特征工程 4. 建模,測試模型并預測出結果 5. 驗證模型效果 二、sklearn中的相關包 1.sklearn.preprocessing 2.sklearn.Impute 3.sklearn.feature_selection 4.sklearn.decomposition 三、數據預處理…

【網絡安全】PostMessage:分析JS實現XSS

未經許可,不得轉載。 文章目錄 前言示例正文 前言 PostMessage是一個用于在網頁間安全地發送消息的瀏覽器 API。它允許不同的窗口(例如,來自同一域名下的不同頁面或者不同域名下的跨域頁面)進行通信,而無需通過服務器…

【Arduino IDE】安裝及開發環境、ESP32庫

一、Arduino IDE下載 二、Arduino IDE安裝 三、ESP32庫 四、Arduino-ESP32庫配置 五、新建ESP32-S3N15R8工程文件 樂鑫官網 Arduino官方下載地址 Arduino官方社區 Arduino中文社區 一、Arduino IDE下載 ESP-IDF、MicroPython和Arduino是三種不同的開發框架,各自適…

定制開發AI智能名片商城微信小程序在私域流量池構建中的應用與策略

摘要 在數字經濟蓬勃發展的今天,私域流量已成為企業競爭的新戰場。定制開發AI智能名片商城微信小程序,作為私域流量池構建的創新工具,正以其獨特的優勢助力企業實現用戶資源的深度挖掘與高效轉化。本文深入探討了定制開發AI智能名片商城微信…

.NET Framework、.NET Core 、 .NET 5、.NET 6和.NET 7 和.NET8 簡介及區別

簡述 在軟件開發的宇宙中,.NET是一個不斷擴展的星系,每個版本都像是一顆獨特的星球,擁有自己的特性和環境。作為技術經理,站在選擇的十字路口,您需要一張詳盡的星圖來導航。本文將作為您的向導,帶您穿越從.…

AIoTedge智能物聯網邊緣計算平臺:引領未來智能邊緣技術

引言 隨著物聯網技術的飛速發展,我們正步入一個萬物互聯的時代。AIoTedge智能物聯網邊緣計算平臺,以其創新的邊云協同架構,為智能設備和系統提供了強大的數據處理和智能決策能力,開啟了智能物聯網的新篇章。 智能邊緣計算平臺的核…

LLaMA-Factory

文章目錄 一、關于 LLaMA-Factory項目特色性能指標 二、如何使用1、安裝 LLaMA Factory2、數據準備3、快速開始4、LLaMA Board 可視化微調5、構建 DockerCUDA 用戶:昇騰 NPU 用戶:不使用 Docker Compose 構建CUDA 用戶:昇騰 NPU 用戶&#xf…

【Java項目筆記】01項目介紹

一、技術框架 1.后端服務 Spring Boot為主體框架 Spring MVC為Web框架 MyBatis、MyBatis Plus為持久層框架,負責數據庫的讀寫 阿里云短信服務 2.存儲服務 MySql redis緩存數據 MinIO為對象存儲,存儲非結構化數據(圖片、視頻、音頻&a…

推薦一款處理TCP數據的架構--EasyTcp4Net

EasyTcp4Net是一個基于c# Pipe,ReadonlySequence的高性能Tcp通信庫,旨在提供穩定,高效,可靠的tcp通訊服務。 基礎的消息通訊 重試機制 超時機制 SSL加密通信支持 KeepAlive 流量背壓控制 粘包和斷包處理 (支持固定頭處理,固定長度處理,固定字符處理) 日志支持Pipe &…