2018-09-12day18-網(wǎng)絡(luò)基礎(chǔ)

OSI參考模型

  • 應(yīng)用層:所有產(chǎn)生網(wǎng)絡(luò)流量的程序(QQ栗弟、瀏覽器在辆、有道)
  • 表示層:數(shù)據(jù)傳輸前的壓縮册踩、加密泳姐、確定編碼方法等操作
  • 會(huì)話層:查看木馬(netstat -nb)(只要需要網(wǎng)絡(luò)請求,就必頂會(huì)建立會(huì)話)
  • 傳輸層:可靠傳輸暂吉、不可靠傳輸胖秒、流量控制
  • 網(wǎng)絡(luò)層:負(fù)責(zé)選擇最佳路徑、規(guī)劃IP地址
  • 數(shù)據(jù)鏈路層:幀的開始和結(jié)尾慕的、透明傳輸阎肝、差錯(cuò)校驗(yàn)
  • 物理層:借口標(biāo)準(zhǔn)、電器標(biāo)準(zhǔn)

計(jì)算機(jī)數(shù)據(jù)通信過程

過程:客戶端通過下一跳找到DNS的IP地址對應(yīng)的服務(wù)器肮街,DNS服務(wù)器會(huì)對客戶端訪問的域名進(jìn)行解析风题,然后再將解析域名后得到的IP地址返回給客戶端,客戶端根據(jù)解析到的IP地址找到相應(yīng)的服務(wù)器低散,并發(fā)出請求俯邓。


數(shù)據(jù)封裝

數(shù)據(jù)解封

傳輸層兩個(gè)協(xié)議(TCP/UDP)

  • TCP協(xié)議(Transmission Control Protocol,傳輸控制協(xié)議)
    1.需要傳輸?shù)奈募侄蝹鬏?br> 2.建立回話
    3.可靠傳輸
    4.流量控制
  • UDP協(xié)議(User Data Protocol熔号,用戶數(shù)據(jù)報(bào)協(xié)議)
    1.一個(gè)數(shù)據(jù)包就能完成數(shù)據(jù)通信
    2.不需要建立會(huì)話
    3.不可靠傳輸
    4.不需要流量控制

TCP如何實(shí)現(xiàn)可靠傳輸

HTTP協(xié)議

客戶端如何找到想要的服務(wù)器稽鞭?
客戶端通過URL找到想要連接的服務(wù)器
1.什么是URL

  • URL的全稱是Uniform Resource Locator(統(tǒng)一資源定位符)
  • 通過1個(gè)URL,能找到互聯(lián)網(wǎng)上唯一的1個(gè)資源
  • URL就是資源的地址引镊、位置朦蕴,互聯(lián)網(wǎng)上的每個(gè)資源都有一個(gè)唯一的URL

2.URL的基本格式 = 協(xié)議://主機(jī)地址/路徑
協(xié)議:不同的協(xié)議篮条,代表著不同的資源查找方式、資源傳輸方式
主機(jī)地址:存放資源的主機(jī)(服務(wù)器)的IP地址(域名)
路徑:資源在主機(jī)(服務(wù)器)中的具體位置

3.URL中常見的協(xié)議

  • HTTP
    超文本傳輸協(xié)議吩抓,訪問的是遠(yuǎn)程的網(wǎng)絡(luò)資源涉茧,格式是http://
    http協(xié)議是在網(wǎng)絡(luò)開發(fā)中最常用的協(xié)議
  • file
    訪問的是本地計(jì)算機(jī)上的資源,格式是file://(不用加主機(jī)地址)
  • mailto
    訪問的是電子郵件地址疹娶,格式是mailto://
  • FTP
    訪問的是共享主機(jī)的文件資源伴栓,格式是ftp://

4.HTTP協(xié)議的作用
a.規(guī)定客戶端和服務(wù)器之間的數(shù)據(jù)傳輸格式
b.讓客戶端和服務(wù)器能有效地進(jìn)行數(shù)據(jù)溝通

5.HTTP協(xié)議的特點(diǎn)

  • 簡單快速
    因?yàn)镠TTP協(xié)議簡單,所有HTTP服務(wù)器的程序規(guī)模小雨饺,因而通信速度很快
  • 靈活
    HTTP允許傳輸各種各樣的數(shù)據(jù)
  • HTTP 0.9和1.0使用非持續(xù)連接
    限制每次連接只處理一個(gè)請求钳垮,服務(wù)器對客戶端的請求做出響應(yīng)后,馬上斷開連接额港,這種方式可以節(jié)省傳輸時(shí)間

6.HTTP通信過程


7.常見響應(yīng)狀態(tài)碼

狀態(tài)碼 英文名稱 中文描述
200 OK 請求成功
400 Bad Request 客戶端請求的語法錯(cuò)誤饺窿,服務(wù)器無法解析
404 Not Found 服務(wù)器無法根據(jù)客戶端的請求找到資源
500 Internal Server Error 服務(wù)器內(nèi)部錯(cuò)誤,無法完成請求

8.發(fā)送HTTP請求的方法(GET/POST)
GET和POST的主要區(qū)別表現(xiàn)在數(shù)據(jù)傳遞上

  • GET
    a.在請求URL后面以?的形式跟上發(fā)給服務(wù)器的參數(shù)移斩,多個(gè)參數(shù)之間用&隔開肚医,比如
    http://www.test.com/login?username=123&pwd=234&type=JSON
    b.由于瀏覽器和服務(wù)器對URL長度有限制,因此在URL后面附帶的參數(shù)是有限制的向瓷,通常不能超過1KB
  • POST
    a.發(fā)給服務(wù)器的參數(shù)全部放在請求體中
    b.理論上肠套,POST傳遞的數(shù)據(jù)量沒有限制(具體還得看服務(wù)器的處理能力)

python對套接字的支持

服務(wù)器

import socket

# 1.創(chuàng)建套接字對象
server = socket.socket()
# 2.綁定IP地址和端口
server.bind(('10.7.153.120', 8080))
# 3.監(jiān)聽
server.listen(512)
while True:
    # 4.接收請求
    connect,addr = server.accept()
    # 5.發(fā)送數(shù)據(jù)
    with open('./files/cat.jpg', 'rb') as f:
        data = f.read()
    connect.send(data)
    # 6.接收數(shù)據(jù)
    # connect.recv(512)
    # 7.關(guān)閉連接
    connect.close()

客戶端

import socket

client = socket.socket()
client.connect(('10.7.153.120', 8080))

# 創(chuàng)建一個(gè)空的二進(jìn)制數(shù)據(jù)
all_data = bytes()

# 接收從服務(wù)器傳回來的數(shù)據(jù)
data = client.recv(1024)
while data:
    print('接收到數(shù)據(jù)')
    all_data += data
    data = client.recv(1024)

with open('./files/new.jpg', 'wb') as f:
    f.write(all_data)
client.close()

http請求

import requests

# 1.準(zhǔn)備url
url = 'https://www.apiopen.top/satinApi?type=1&page=1'

# 2.發(fā)送請求
"""
get(url,參數(shù)對應(yīng)的字典)
post(url,參數(shù)對應(yīng)的字典)
返回值是服務(wù)器返回的響應(yīng)
"""
response = requests.get(url)
# requests.get('https://www.apiopen.top/satinApi',{'type': 1, 'page': 1})
print(response)

# 3.通過響應(yīng)獲取服務(wù)器返回的數(shù)據(jù)
# a.獲取字符串類型的數(shù)據(jù)
print(response.text)

# b.獲取json格式的數(shù)據(jù)
print(response.json())

# c.獲取二進(jìn)制格式的數(shù)據(jù)
print(response.content)

# 4.獲取響應(yīng)頭(了解)
print(response.headers)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市风罩,隨后出現(xiàn)的幾起案子糠排,更是在濱河造成了極大的恐慌舵稠,老刑警劉巖超升,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異哺徊,居然都是意外死亡室琢,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進(jìn)店門落追,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盈滴,“玉大人,你說我怎么就攤上這事轿钠〕驳觯” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵疗垛,是天一觀的道長症汹。 經(jīng)常有香客問我,道長贷腕,這世上最難降的妖魔是什么背镇? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任咬展,我火速辦了婚禮,結(jié)果婚禮上瞒斩,老公的妹妹穿的比我還像新娘破婆。我一直安慰自己,他們只是感情好胸囱,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布祷舀。 她就那樣靜靜地躺著,像睡著了一般烹笔。 火紅的嫁衣襯著肌膚如雪蔑鹦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天箕宙,我揣著相機(jī)與錄音嚎朽,去河邊找鬼。 笑死柬帕,一個(gè)胖子當(dāng)著我的面吹牛哟忍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播陷寝,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼锅很,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了凤跑?” 一聲冷哼從身側(cè)響起爆安,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎仔引,沒想到半個(gè)月后扔仓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡咖耘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年翘簇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片儿倒。...
    茶點(diǎn)故事閱讀 39,711評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡版保,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出夫否,到底是詐尸還是另有隱情彻犁,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布凰慈,位于F島的核電站汞幢,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏溉瓶。R本人自食惡果不足惜急鳄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一谤民、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧疾宏,春花似錦张足、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至岩馍,卻和暖如春碉咆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蛀恩。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工疫铜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人双谆。 一個(gè)月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓壳咕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親顽馋。 傳聞我的和親對象是個(gè)殘疾皇子谓厘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容