一、網絡協議概述
網絡協議是指計算機網絡中控制信息傳輸、網絡設備之間通信機制、數據轉換和編碼方式、傳輸速率和誤差控制等方面的一種規範或標準。在網絡通信過程中,通信雙方必須遵循相同的網絡協議,才能正常進行通信。
常見的網絡協議包括:TCP/IP協議、HTTP協議、FTP協議、SMTP協議等。
二、TCP/IP協議
TCP/IP協議是因特網的基礎協議,它是由互聯網工程任務組( IETF )制定的一個網絡通信協議族。TCP/IP協議族包含了許多協議,其中TCP協議和IP協議是最基礎、最重要的兩個協議。
TCP/IP協議是一種面向連接、可靠的傳輸協議。當一台計算機需要向另一台計算機發送數據時,會首先建立一個TCP連接,然後通過此連接進行數據傳輸。數據傳輸過程中,發送方會對每個數據包進行確認響應,以保證數據能夠準確無誤地傳輸。
import socket
# 創建socket對象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 綁定端口號
s.bind(('127.0.0.1', 8888))
# 監聽客戶端連接
s.listen(5)
while True:
# 建立客戶端連接
c, addr = s.accept()
print('conneciton from:', addr)
c.send('Welcome to TCP server!')
c.close()
三、HTTP協議
HTTP協議是用於Web瀏覽器和Web服務器之間通信的協議。當瀏覽器需要訪問一個Web頁面時,會向服務器發送HTTP請求,服務器接收到請求後發送HTTP響應,瀏覽器根據響應渲染頁面。
HTTP協議常見的請求方法包括:GET、POST、PUT、DELETE等。
import requests
# 發送GET請求
url = 'https://www.baidu.com'
response = requests.get(url)
# 打印響應數據
print(response.text)
四、FTP協議
FTP協議是用於文件傳輸的協議,能夠在網絡上方便地傳輸文件。通過FTP協議,用戶之間可以方便地上傳和下載文件。
FTP協議使用兩條TCP連接:控制連接和數據連接。在使用FTP協議傳輸文件時,用戶首先通過控制連接與FTP服務器建立連接,然後再通過數據連接傳輸文件。
from ftplib import FTP
# 連接FTP服務器
ftp = FTP('ip_address')
ftp.login(user='username', passwd='password')
# 上傳文件
with open('file.txt', 'rb') as f:
ftp.storbinary('STOR file.txt', f)
# 下載文件
with open('file.txt', 'wb') as f:
ftp.retrbinary('RETR file.txt', f)
ftp.quit()
五、SMTP協議
SMTP協議用於郵件的發送和接收。在使用SMTP協議發送郵件時,客戶端首先通過TCP連接與SMTP服務器建立連接,然後發送郵件內容進行郵件發送。
SMTP協議常見的命令包括:EHLO、HELO、MAIL FROM、RCPT TO、DATA等。
import smtplib
from email.mime.text import MIMEText
# 郵件內容設置
mail_host = 'smtp.xxx.com'
mail_user = 'your_username'
mail_pass = 'your_password'
sender = 'sender_address'
receivers = ['receiver_address']
message = MIMEText('Hello, this is a test email.')
message['From'] = sender
message['To'] = ';'.join(receivers)
message['Subject'] = 'Test email'
# 連接郵件服務器並發送郵件
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host, 25)
smtpObj.login(mail_user, mail_pass)
smtpObj.sendmail(sender, receivers, message.as_string())
smtpObj.quit()
原創文章,作者:VKEQP,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/371724.html
微信掃一掃
支付寶掃一掃