最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【re:從零開始的網(wǎng)站搭建教程】#1-基礎(chǔ)知識

2021-09-03 17:14 作者:星與闇之痕  | 我要投稿

#引言

均為我個人經(jīng)驗,且都由我個人編寫完成,如有錯誤請見諒。

本文將講解用原生python編寫web服務、基礎(chǔ)的網(wǎng)絡連接、http協(xié)議、以及html+js+css前端語言,而不會使用現(xiàn)成的web框架、建站腳本。也會提及本人之前遇到的問題和一些坑。我們的最終目標是用這些知識搭建一個完整的論壇。


——閱讀本文需要有一定的計算機知識。若能使用python最好,在代碼演示的時候會用到。

推薦python教程:

【Python教程 - 廖雪峰的官方網(wǎng)站】https://www.liaoxuefeng.com/wiki/1016959663602400

#http基礎(chǔ)

我們?yōu)g覽網(wǎng)頁,與web服務器通信建立在tcp/ip協(xié)議之上。不過這并非我們的重點,我們不需要了解tcp連接具體是如何建立的,只用知道于訪問網(wǎng)站需要tcp/ip協(xié)議。而真正的重點是http協(xié)議,我們需要了解在http協(xié)議下訪問一個網(wǎng)站的流程。

請求流程簡圖

是非常簡單的一去一來,http協(xié)議規(guī)定我們訪問網(wǎng)站都要遵循這個流程。要注意的是雖然tcp協(xié)議允許了服務器和客戶端之間數(shù)據(jù)雙向自由傳輸,但是http協(xié)議規(guī)定連接只能由客戶端也就是用戶這邊的瀏覽器發(fā)起,服務器只能根據(jù)客戶端發(fā)送的數(shù)據(jù)進行響應,并且當服務器發(fā)送完信息后會立即關(guān)閉連接。

#socket、ip與端口

1.socket

socket即套接字,在編程語言中是對網(wǎng)絡連接的抽象。通過操控socket對象可以對網(wǎng)絡連接進行各種操作。

2.ip

ip是網(wǎng)絡上的一個地址,有公網(wǎng)ip與內(nèi)網(wǎng)ip之分,簡單來說的話公網(wǎng)ip是能在互聯(lián)網(wǎng)上訪問的ip,而內(nèi)網(wǎng)ip只能在局域網(wǎng)中訪問,家庭網(wǎng)絡中大多是以192.168開頭的內(nèi)網(wǎng)ip。

由于目前的ipv4的ip地址有限,最多也就只有256^4個(0.0.0.0~255.255.255.255),給每個設(shè)備都綁定ipv4地址是不現(xiàn)實的,我們平時使用的都是動態(tài)ip,這也是服務器沒辦法主動請求的原因。

在cmd中使用

即可查看自己當前的本地ip地址。

ipconfig

另外,在搜索引擎中輸入ip就可已查詢本機當前在外網(wǎng)上的ip地址。


當然如果非要連網(wǎng)才能編寫的話未免也過于麻煩,我們可以使用ipv4環(huán)回來解決這個問題。ipv4環(huán)回是一個特殊的ip,其地址為127.0.0.1。通過這個地址我們可以讓主機給自身發(fā)送數(shù)據(jù)。

3.端口

而端口則代表這個地址上的眾多出入口。端口一共有65536個(即2^16),很多網(wǎng)絡協(xié)議都會有固定端口,http協(xié)議一般使用80端口。

#python TCP網(wǎng)絡編程與多線程

1.TCP網(wǎng)絡編程

使用python自帶socket模塊來進行tcp網(wǎng)絡編程

s就是我們的一個新的socket對象了,AF_INET表示使用ipv4,要使用ipv6的話用AF_INET6就可以了。SOCK_STREAM表示使用面向流的TCP協(xié)議。

接下來就是對s進行各種操作。

如果作為客戶端的話就比較簡單,就只需要連接,然后發(fā)送、接受數(shù)據(jù),最后關(guān)閉就行了

服務端會稍微復雜一點,服務端需要監(jiān)聽客戶端的請求、接收發(fā)送數(shù)據(jù),并且還要能同時和多個客戶端進行連接。

2.多線程

要同時完成幾個任務就需要用到多線程,雖然python因為GIL鎖的原因不能很好的利用多核cpu,但由于web是io密集型,對計算的要求相對來說不是非常大,在這種情況下python的多線程還是很好用的。

用來個簡單的客戶端與服務端的通信示例

服務端:

客戶端:

效果是這樣的

客戶端
服務端



下一節(jié)就真正開始講web框架的編寫。

【re:從零開始的網(wǎng)站搭建教程】#1-基礎(chǔ)知識的評論 (共 條)

分享到微博請遵守國家法律
庆安县| 安阳市| 新民市| 互助| 保康县| 确山县| 即墨市| 合阳县| 四子王旗| 奎屯市| 鄂托克旗| 中山市| 顺昌县| 十堰市| 永城市| 三门峡市| 贡嘎县| 延津县| 高邑县| 岚皋县| 新源县| 冀州市| 宁化县| 凉城县| 玉溪市| 寿光市| 修文县| 阿拉善右旗| 桦南县| 永和县| 信宜市| 安国市| 桐柏县| 丰城市| 广宗县| 潜山县| 邯郸县| 淄博市| 青阳县| 彭水| 江永县|