日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

网络编程知识预备(4) ——了解应用层的HTTP协议与HTTPS协议

發布時間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网络编程知识预备(4) ——了解应用层的HTTP协议与HTTPS协议 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考:簡單了解HTTP協議與HTTPS協議
作者:丶PURSUING
發布時間: 2021-03-15 10:55:13
網址:https://blog.csdn.net/weixin_44742824/article/details/114807328?spm=1001.2014.3001.5502

編程實現人臉識別需要基于人工智能平臺,基于HTTP協議通訊,B/S模式,順便簡單了解HTTP協議相關的周邊,也是在為面試做準備。

本文為學習筆記,根據需要摘抄自下篇文章:

參考:原文地址
作者:冬冬他哥哥

目錄

  • HTTP協議
    • 一、http協議的特性
    • 二、http協議的請求
      • 請求行
        • GET請求
        • POST 請求(人臉識別方案)
        • 兩個請求的區別
      • 請求頭
      • 請求主體
    • 三、http協議的響應
      • 響應行
      • 響應頭
      • 響應主體
  • HTTPS協議
    • 一、簡介與原理
    • 二、密碼學基礎
      • 明文與密文
      • 密鑰
      • 對稱加密(私鑰+私鑰)
      • 非對稱加密(公鑰+私鑰)
    • 三、HTTPS相對于HTTP優缺點
      • 優點:正確率更高,安全性更強
      • 缺點:效率低,成本高
  • 往期文章

HTTP協議

重點了解GET請求和POST請求,以及他們的區別。

一、http協議的特性

http協議是建立在TCP/IP協議之上應用層協議,默認端口為80或者8080

http協議的的特點是無狀態,短連接

(短連接指的是不像socket服務器一樣,客戶端與服務器一直保持連接(心跳包方式實現),而是例如你在百度進行搜索,網頁數據過來后連接就斷開,直到你下次繼續搜索)

二、http協議的請求

利用抓包工具httpwatch可以獲取報文,多見于前端,后端用于分析數據傳輸過程中產生的問題。

http協議的報文傳輸的是ASCII碼,在TCP/IP協議之上,主要主要分為三部分:

請求行

瀏覽器向服務器發送的,在第一行,包含:

  • 請求方式(GET請求、POST請求)
  • url(網址)
  • http協議版本

GET請求

例如:

請求方式是GET請求,url攜帶的參數可見,http協議版本是1.1

POST 請求(人臉識別方案)

例如:

請求方式為POST請求,url攜帶的參數不可見,協議版本是1.1

兩個請求的區別

本質區別:

GET產生一個TCP數據包;POST產生兩個TCP數據包。

  • 對于GET方式的請求,瀏覽器會把http header和data一并發送出去,服務器響應200(返回數據);

  • 對于POST,瀏覽器先發送header,服務器響應100 continue,瀏覽器再發送data,服務器響應200 ok(返回數據)。

200是什么意思,總結起來一句話,以2開頭的為成功,以4開頭的多為失敗,如常見的404.
詳情跳轉:http協議中各個響應狀態200_301_404_500等返回值含義快速一覽

還有:

(1)url攜帶的參數是否可見:

get,url攜帶的參數可見

例如:

var url = 'http://192.168.1.40:8080/v1/sea?page=1&per_page=10' + 'search=' + escape(str)
  • 1

參數用&符號進行連接,被當做參數的分隔符來進行處理。上面就兩個參數。page=1,per_page=10

post,url攜帶的參數不可見

有參數,但被隱藏起來了,可以通過抓包查看這個參數。

(2)參數傳遞方式

get,通過請求行拼接url進行傳遞參數

post,通過請求主體傳輸參數

(3)緩存性

get請求是可以緩存的

post請求不可以緩存

(4)頁面后退的反應

get請求頁面后退時,不產生影響(因為有緩存)

post請求頁面后退時,會重新提交請求(沒有緩存)

(5)傳輸數據的大小

get一般傳輸數據大小不超過2k-4k(根據瀏覽器不同,限制不一樣,但相差不大)

post請求傳輸數據的大小根據php.ini 配置文件設定,也可以無限大。

(6)安全性

這個也是最不好分析的,原則上post肯定要比get安全,畢竟傳輸參數時url不可見,但也擋不住部分人閑的沒事在那抓包玩。安全性個人覺得是沒多大區別的,對傳遞的參數進行加密,其實都一樣。

請求頭

瀏覽器向服務器發送一些狀態數據,標識數據等等

一個信息一行,包括信息名:信息值,按行分隔。

例如:

User-Agent: firefox//表示發送請求的瀏覽器(請求代理端)是firefox Host: shop.100.com//表示請求的主機域名(基于域名的虛擬主機就是靠這個頭判斷的) Cookie:name=itcast//瀏覽器攜帶的cookie數據。 Content-Type: application/x-www-form-urlencoded Content-Length: 40 Connection: Keep-Alive

注意,請求頭信息,需要使用一個空行結束!(目前沒搞懂)

請求主體

請求代理端向服務器端,發送的請求數據!

典型的就是POST形式發送的表單數據

get請求,沒有請求主體部分!get數據是在請求行中的url上進行傳遞的!

三、http協議的響應

HTTP/1.1 200 ok Date: Tue,19 Nov 2013 03:08:55 GMT Server: Apache/2. 2.22 (Win32) PHP/5.3. 13 X- -Powered -By: PHP/5. 3.13 Content-Length: 16 Content- Type: text/html

響應行

響應行包括:協議版本、狀態碼、狀態消息。典型的:

1xx:消息
2xx:成功
3xx:請求被重定向
4xx:瀏覽器端錯誤
5xx:服務器端錯誤

響應頭

Date:響應的時間。GMT時間!
Content-Length: 響應主體數據的長度!
Content-Type: text/html :內容類型:告知瀏覽器接下來發送的響應主體數據是什么格式!

響應主體

主要的響應數據,在瀏覽器的主體區域顯示的數據都是相應主體!(前端人員通過html和css技術實現的排版,對于C語言來說拿到的就是一段ASCII碼、一段字符串)

注意,每行,包括相應行和響應頭,都需要一個 \r\n結尾

HTTPS協議

一、簡介與原理

http協議是明文傳輸的,因此很容易被截取和解析,泄漏個人數據。https協議是在http和tcp之間多添加了一層加密SSL,進行身份驗證和數據加密。

二、密碼學基礎

明文與密文

明文: 明文指的是未被加密過的原始數據。
密文: 明文被某種加密算法加密之后,會變成密文,從而確保原始數據的安全。密文也可以被解密,得到原始的明文。

密鑰

密鑰:密鑰是一種參數,它是在明文轉換為密文或將密文轉換為明文的算法中輸入的參數。

密鑰分為對稱密鑰與非對稱密鑰,分別應用在對稱加密和非對稱加密上。

對稱加密(私鑰+私鑰)

對稱加密:對稱加密又叫做私鑰加密,即信息的發送方和接收方使用同一個密鑰去加密和解密數據。

對稱加密的特點是算法公開、加密和解密速度快,適合于對大數據量進行加密,常見的對稱加密算法有DES、3DES、TDEA、Blowfish、RC5和IDEA。

其加密過程如下:明文 + 加密算法 + 私鑰 => 密文
解密過程如下: 密文 + 解密算法 + 私鑰 => 明文

對稱加密中用到的密鑰叫做私鑰,私鑰表示個人私有的密鑰,即該密鑰不能被泄露。

其加密過程中的私鑰與解密過程中用到的私鑰是同一個密鑰,這也是稱加密之所以稱之為“對稱”的原因。

由于對稱加密的算法是公開的,所以一旦私鑰被泄露,那么密文就很容易被破解,所以對稱加密的缺點是密鑰安全管理困難

非對稱加密(公鑰+私鑰)

非對稱加密:非對稱加密也叫做公鑰加密。

非對稱加密使用一對密鑰,即公鑰和私鑰,且二者成對出現。私鑰被自己保存,不能對外泄露。公鑰指的是公共的密鑰,任何人都可以獲得該密鑰。用公鑰或私鑰中的任何一個進行加密,用另一個進行解密。

(1)被公鑰加密過的密文只能被私鑰解密,過程如下:
明文 + 加密算法 + 公鑰 => 密文, 密文 + 解密算法 + 私鑰 => 明文
(2)被私鑰加密過的密文只能被公鑰解密,過程如下:
明文 + 加密算法 + 私鑰 => 密文, 密文 + 解密算法 + 公鑰 => 明文

由于加密和解密使用了兩個不同的密鑰,這就是非對稱加密“非對稱”的原因

非對稱加密的缺點是加密和解密花費時間長、速度慢,只適合對少量數據進行加密。

在非對稱加密中使用的主要算法有:RSA、Elgamal、Rabin、D-H、ECC(橢圓曲線加密算法)等。

這些算法不用親自去寫,已經成為一種標準,有現成的庫去調用實現即可。

三、HTTPS相對于HTTP優缺點

優點:正確率更高,安全性更強

使用 HTTPS 協議可認證用戶和服務器,確保數據發送到正確的客戶機和服務器 ;

HTTPS 協議是由 SSL+HTTP 協議構建的可進行加密傳輸、身份認證的網絡協議,要比 HTTP 協議安全,可防止數據在傳輸過程中不被竊取、改變,確保數據的完整性

HTTPS 是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本 。

缺點:效率低,成本高

相同網絡環境下,HTTPS 協議會使頁面的加載時間延長近 50%,增加 10%到 20%的耗電。

HTTPS 協議還會影響緩存,增加數據開銷和功耗 。

HTTPS 協議的安全是有范圍 中間人攻擊 偽造證書

往期文章

網絡編程知識預備(1) ——了解OSI網絡模型
網絡編程知識預備(2) ——淺顯易懂的三次握手與四次揮手
網絡編程知識預備(3) ——SOCKET、TCP、HTTP之間的區別與聯系
網絡編程知識預備(4) ——了解HTTP協議與HTTPS協議
網絡編程知識預備(5) ——libcurl庫簡介及其編程訪問百度首頁

總結

以上是生活随笔為你收集整理的网络编程知识预备(4) ——了解应用层的HTTP协议与HTTPS协议的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。