国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現簡單的HttpServer服務器示例

2020-02-16 10:19:54
字體:
來源:轉載
供稿:網友

要寫一個類似tomcat的簡易服務器,首先需弄清楚這幾點:

1. 客戶端(Client)和服務端(Server)的角色及作用

角色A向角色B請求數據,這時可以把A視為客戶端,B視為服務端。客戶端的主要職責是發送請求和接收服務端根據自己發送的請求返回的請求信息,而服務端的主要職責是接收請求和返回請求數據。

2. 瀏覽器是什么及工作原理

我們常說B/S,C/S架構,所謂的B/S指browser/server,C/S指Client/Server,B/S架構其實就是應用于瀏覽器的程序,只要最后在瀏覽器上展現的都是 B/S架構,而非在瀏覽器上展現的都是C/S架構,如常見的英雄聯盟游戲。但是本質上只有C/S架構,因為瀏覽器是一種特殊的客戶端。

瀏覽器的特殊之處是有一下三大引擎:

DOM解析引擎:即瀏覽器可以解析HTML 樣式解析引擎:即瀏覽器可以解析CSS 腳本解析引擎:即瀏覽器可以解析JAVASCRIPT

3. Socket

上面提到的客戶端服務端,他們之間是怎樣實現連接及數據傳遞的,這就是Socket,每一門編程語言都有Socket編程,Socket的作用就是提供了網絡通信的能力

4. HTTP協議及HTTP與TCP/TP的區別

客戶端和服務端通過Socket實現了網絡通信的能力,可以實現數據傳遞。而協議是規范數據傳輸,也就是說客戶端和服務端之間傳輸數據要按照一定得規范和標準傳輸,不能瞎傳。

TCP/IP(Transmission Control Protocol/Internet Protocol):傳輸控制協議/網間協議

HTTP(HyperText Transfer Protocol):超文本傳輸協議。

TCP/TP的區別:

做一個形象的比喻,TCP/TP是馬路,HTTP則是馬路上的汽車,所以HTTP一定是在TCP/TP的基礎上的。

HTTP主要是應用在web程序上,設計之初就是為了提供一種發布和接收HTML頁面的方法,這樣說可能很抽象很難理解。具體的說當我們去訪問一個網站時,只需要拿到基于這個網站的內容(比如html,css,JavaScript)。但我們抓取瀏覽器接收到的資源包(可以用Fiddler工具)發現除了網頁需要的實體內容還有一些下面信息:

HTTP/1.1 200 OK
 Cache-Control: private
 Content-Type: text/plain; charset=utf-8
 Content-Encoding: gzip
 Vary: Accept-Encoding
 Server: Microsoft-IIS/7.5
 X-AspNet-Version: 4.0.30319
 X-Powered-By: ASP.NET
 Date: Tue, 24 Jan 2017 03:25:23 GMT
 Connection: close
 Content-Length: 661

這就是http協議規范,比如Content-Type就是說傳輸的時候文件的格式,Content-Encoding規定了編碼格式。不止以上這些,非常多,關于這些參數含義這里就不去一一介紹

5. URL的含義

URL(統一資源定位符),就是我們常說的網址,直接來解析一個URL來說明他:http://198.2.17.25:8080/webapp/index.html

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平定县| 高邮市| 湖北省| 南郑县| 曲水县| 澄城县| 威宁| 德令哈市| 仙桃市| 武邑县| 吉林省| 清原| 建阳市| 蒙阴县| 沅江市| 长寿区| 柏乡县| 噶尔县| 宁远县| 宜丰县| 伊春市| 饶阳县| 高唐县| 满城县| 吉首市| 六盘水市| 江安县| 高清| 甘洛县| 乐安县| 罗定市| 南和县| 永吉县| 平泉县| 嘉祥县| 密山市| 类乌齐县| 蕉岭县| 繁昌县| 衡水市| 平顶山市|