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

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

HTTP協(xié)議與靜態(tài)Web服務(wù)器開發(fā)

2023-06-15 10:11 作者:程序員四次元ポケット  | 我要投稿

學(xué)習(xí)目標(biāo)

1、了解HTTP協(xié)議的基本概念?

2、掌握HTTP請(qǐng)求報(bào)文與響應(yīng)報(bào)文?

3、學(xué)會(huì)使用開發(fā)者工具查看HTTP協(xié)議的通信過程?

4、搭建Python自帶的靜態(tài)Web服務(wù)器?

5、掌握Python靜態(tài)Web服務(wù)器開發(fā)

一、HTTP協(xié)議概述

1、網(wǎng)址URL

網(wǎng)址又稱為URL,URL的英文全拼是(Uniform Resoure Locator),表達(dá)的意思是統(tǒng)一資源定位符,通俗理解就是網(wǎng)絡(luò)資源地址。 URL地址:https://www.itcast.com/18/1122/10/E178J2O4000189FH.html

2、URL的組成


3、HTTP協(xié)議

☆ 場(chǎng)景導(dǎo)入

首先我們來看一個(gè)場(chǎng)景:

在瀏覽器與Web服務(wù)器通信過程中,其數(shù)據(jù)格式有什么規(guī)則么,是否可以任意設(shè)置??

答:不是的,瀏覽器與Web服務(wù)器端的通信,必須使用HTTP協(xié)議來規(guī)定瀏覽器和web服務(wù)器之間通訊的數(shù)據(jù)的格式。

☆ 什么是HTTP協(xié)議?

HTTP協(xié)議的全稱是(HyperText Transfer Protocol),翻譯過來就是超文本傳輸協(xié)議。 超文本是指在文本數(shù)據(jù)的基礎(chǔ)上還包括非文本數(shù)據(jù),非文本數(shù)據(jù)有圖片、音樂、視頻等,而這些非文本數(shù)據(jù)會(huì)使用鏈接的方式進(jìn)行加載顯示,通俗來說超文本就是帶有鏈接的文本數(shù)據(jù)也就是我們常說的網(wǎng)頁數(shù)據(jù),如下圖所示:


☆ HTTP協(xié)議的概念及作用

HTTP協(xié)議的制作者是蒂姆·伯納斯-李,1991年設(shè)計(jì)出來的,HTTP協(xié)議設(shè)計(jì)之前目的是傳輸網(wǎng)頁數(shù)據(jù)的,現(xiàn)在允許傳輸任意類型的數(shù)據(jù)。 傳輸HTTP協(xié)議格式的數(shù)據(jù)是基于TCP傳輸協(xié)議的,發(fā)送數(shù)據(jù)之前需要先建立連接。 TCP傳輸協(xié)議是用來保證網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)的安全性的,HTTP協(xié)議是用來規(guī)定這些數(shù)據(jù)的具體格式的。

注意:HTTP協(xié)議規(guī)定的數(shù)據(jù)格式是瀏覽器和Web服務(wù)器通信數(shù)據(jù)的格式,也就是說瀏覽器和Web服務(wù)器通信需要使用HTTP協(xié)議。

☆ 瀏覽器訪問Web服務(wù)器的過程


二、HTTP請(qǐng)求報(bào)文與響應(yīng)報(bào)文

1、HTTP請(qǐng)求報(bào)文

HTTP最常見的請(qǐng)求報(bào)文有兩種:① GET方式的請(qǐng)求報(bào)文 ② POST方式的請(qǐng)求報(bào)文 GET: 獲取Web服務(wù)器數(shù)據(jù) POST: 向Web服務(wù)器提交數(shù)據(jù)

2、GET請(qǐng)求報(bào)文格式


3、GET請(qǐng)求報(bào)文分析

在Windows系統(tǒng)中,換行符使用\n來實(shí)現(xiàn)。但是在Linux以及Unix系統(tǒng)中,換行符需要使用\r\n來實(shí)現(xiàn)。

4、POST請(qǐng)求報(bào)文格式


5、POST請(qǐng)求報(bào)文分析

6、GET與POST請(qǐng)求報(bào)文小結(jié)

① 一個(gè)HTTP請(qǐng)求報(bào)文可以由請(qǐng)求行、請(qǐng)求頭、空行和請(qǐng)求體4個(gè)部分組成 ② 請(qǐng)求行是由三部分組成: 請(qǐng)求方式、請(qǐng)求資源路徑、HTTP協(xié)議版本(1.1或2.0) ③ GET方式的請(qǐng)求報(bào)文沒有請(qǐng)求體,只有請(qǐng)求行、請(qǐng)求頭、空行組成 ④ POST方式的請(qǐng)求報(bào)文可以有請(qǐng)求行、請(qǐng)求頭、空行、請(qǐng)求體四部分組成。 注意:POST方式可以允許沒有請(qǐng)求體,但是這種格式很少見。


7、HTTP 響應(yīng)報(bào)文分析(重點(diǎn))


響應(yīng)頭信息主要是告訴瀏覽器的客戶端應(yīng)該如何處理我們返回的數(shù)據(jù)。

8、HTTP響應(yīng)狀態(tài)碼

是用于表示W(wǎng)eb服務(wù)器響應(yīng)狀態(tài)的3位數(shù)字代碼

三、查看HTTP協(xié)議的通信過程

1、谷歌瀏覽器開發(fā)者工具

安裝GoogleChrome瀏覽器,在Windows和Linux平臺(tái)按F12或Ctrl+Shift+I調(diào)出開發(fā)者工具,Mac中選擇“視圖 ->開發(fā)者->”開發(fā)者工具或者直接使用alt+command+i 這個(gè)快捷鍵,還有一個(gè)多平臺(tái)通用的操作就是在網(wǎng)頁右擊選擇檢查。

提示:開發(fā)者工具還是查看網(wǎng)頁布局和JS代碼調(diào)試的利器。

2、HTTP協(xié)議的通信過程


注意:每一次瀏覽器和服務(wù)器的數(shù)據(jù)通訊,都是成對(duì)出現(xiàn)的即請(qǐng)求和響應(yīng),同時(shí)每一次請(qǐng)求和響應(yīng)都必須符合HTTP協(xié)議的格式

3、谷歌瀏覽器開發(fā)者工具使用

第一步:了解各選項(xiàng)卡功能

編輯切換為居中 第二步:使用Network發(fā)送HTTP請(qǐng)求

第三步:查看HTTP協(xié)議的通信過程 請(qǐng)求頭、請(qǐng)求頭信息

響應(yīng)頭、響應(yīng)體信息


4、小結(jié)

谷歌瀏覽器的開發(fā)者工具是查看http協(xié)議的通信過程利器,通過Network標(biāo)簽選項(xiàng)可以查看每一次的請(qǐng)求和響應(yīng)的通信過程,調(diào)出開發(fā)者工具的通用方法是在網(wǎng)頁右擊選擇檢查。 Headers選項(xiàng)總共有三部分組成:?

① General: 主要信息?

② Response Headers: 響應(yīng)頭?

③ Request Headers: 請(qǐng)求頭 Response選項(xiàng)是查看響應(yīng)體信息的

四、搭建Python自帶的靜態(tài)Web服務(wù)器

1、什么是靜態(tài)Web服務(wù)器

可以為發(fā)出請(qǐng)求的瀏覽器提供靜態(tài)文檔(html/css/js/圖片/音頻/視頻)的程序。 平時(shí)我們?yōu)g覽百度新聞數(shù)據(jù)的時(shí)候,每天的新聞數(shù)據(jù)都會(huì)發(fā)生變化,那訪問的這個(gè)頁面就是動(dòng)態(tài)的,而我們開發(fā)的是靜態(tài)的,每天訪問我們自己的靜態(tài)web服務(wù)器,頁面的數(shù)據(jù)不會(huì)發(fā)生變化。

2、搭建Python自帶的靜態(tài)Web服務(wù)器

Linux創(chuàng)建方式:

Windows創(chuàng)建方式:?

① 創(chuàng)建一個(gè)文件夾,然后把所有的資源文件都放入這個(gè)文件夾中 ② 在DOS窗口使用cd命令切換到此目錄?

③ 使用python -m命令創(chuàng)建靜態(tài)Web服務(wù)器

-m表示運(yùn)行包里面的模塊,執(zhí)行這個(gè)命令的時(shí)候,需要進(jìn)入你自己指定靜態(tài)文件的目錄,然后通過瀏覽器就能訪問對(duì)應(yīng)的html文件了,這樣一個(gè)靜態(tài)的web服務(wù)器就搭建好了。?

④ 訪問Web靜態(tài)服務(wù)器:

查看HTTP通信過程:


3、小結(jié)

靜態(tài)Web服務(wù)器是為發(fā)出請(qǐng)求的瀏覽器提供靜態(tài)文檔的程序,搭建Python自帶的Web服務(wù)器使用 python –m http.server 端口號(hào)這個(gè)命令即可,端口號(hào)不指定默認(rèn)是8000

強(qiáng)調(diào)!:應(yīng)答體中攜帶的數(shù)據(jù)發(fā)送到瀏覽器,瀏覽器經(jīng)過渲染產(chǎn)生具體頁面

五、使用Python開發(fā)自己的Web服務(wù)器

Web服務(wù)器 = TCP服務(wù)器(七步走) + ?HTTP協(xié)議(請(qǐng)求、響應(yīng))

1、開發(fā)步驟

編輯切換為居中

2、返回固定頁面的數(shù)據(jù)


3、返回指定頁面的數(shù)據(jù)

分析步驟:?

① 獲取用戶請(qǐng)求資源的路徑?

② 根據(jù)請(qǐng)求資源的路徑,讀取指定文件的數(shù)據(jù)

③ 組裝指定文件數(shù)據(jù)的響應(yīng)報(bào)文,發(fā)送給瀏覽器?

④ 判斷請(qǐng)求的文件在服務(wù)端不存在,組裝404狀態(tài)的響應(yīng)報(bào)文,發(fā)送給瀏覽器 獲取用戶請(qǐng)求資源的路徑:

獲取指定頁面的數(shù)據(jù):

組裝指定頁面數(shù)據(jù)的響應(yīng)報(bào)文:

組裝404頁面數(shù)據(jù)的響應(yīng)報(bào)文:



六、FastAPI框架

學(xué)習(xí)目標(biāo)

  • 能夠知道什么是FastAPI

  • 能夠知道怎么安裝FastAPI

  • 能夠掌握FastAPI的基本使用

  • 能夠掌握FastAPI實(shí)現(xiàn)訪問多個(gè)指定網(wǎng)頁

1. 什么是FastAPI

FastAPI是一個(gè)現(xiàn)代的,快速(高性能)python web框架. 基于標(biāo)準(zhǔn)的python類型提示,使用python3.6+構(gòu)建API的Web框架.


簡(jiǎn)單講FastAPI就是把做web開發(fā)所需的相關(guān)代碼全部簡(jiǎn)化, 我們不需要自己實(shí)現(xiàn)各種復(fù)雜的代碼, 例如多任務(wù),路由裝飾器等等. 只需要調(diào)用FastAPI提供給我們的函數(shù), 一調(diào)用就可以實(shí)現(xiàn)之前需要很多復(fù)雜代碼才能實(shí)現(xiàn)的功能.

FastAPI的特點(diǎn)

  • 性能快:高性能,可以和NodeJS和Go相提并論

  • 快速開發(fā):開發(fā)功能速度提高約200%至300%

  • 更少的Bug:

  • Fewer bugs: 減少40%開發(fā)人員容易引發(fā)的錯(cuò)誤

  • 直觀:完美的編輯支持

  • 簡(jiǎn)單: 易于使用和學(xué)習(xí),減少閱讀文檔的時(shí)間

  • 代碼簡(jiǎn)潔:很大程度上減少代碼重復(fù)。每個(gè)參數(shù)可以聲明多個(gè)功能,減少bug的發(fā)生

  • 標(biāo)準(zhǔn)化:基于并完全兼容API的開發(fā)標(biāo)準(zhǔn):OpenAPI(以前稱為Swagger)和JSON Schema

搭建環(huán)境

  • python環(huán)境:Python 3.6+

fastapi安裝

☆ 安裝方式1:

  • 安裝fastapi

  • pip install fastapi

  • 如果用于生產(chǎn),那么你還需要一個(gè)ASGI服務(wù)器,如Uvicorn或Hypercorn

  • pip install uvicorn

☆ 安裝方式2 : 1)選擇File->Settings

2)選擇對(duì)應(yīng)項(xiàng)目的Project Interpreter -> 選擇pygame(可以輸入pygame進(jìn)行搜索,節(jié)省時(shí)間) -> install package按鈕 -> 等待項(xiàng)目安裝pygame 包完成(可能需要幾分鐘到十幾分鐘)-> 返回后如果有pygame package信息,則說明項(xiàng)目配置成功

2. FastAPI的基本使用

功能需求:

  • 搭建服務(wù)器

  • 返回html頁面

基本步驟:

  1. 導(dǎo)入模塊

  2. 創(chuàng)建FastAPI框架對(duì)象

  3. 通過@app路由裝飾器收發(fā)數(shù)據(jù)

  4. 運(yùn)行服務(wù)器

代碼實(shí)現(xiàn):

3. 通過FastAPI訪問多個(gè)指定網(wǎng)頁

  • 路由裝飾器的作用:

  • 實(shí)際上通過路由裝飾器我們就可以讓一個(gè)網(wǎng)頁對(duì)應(yīng)一個(gè)函數(shù), 也就可以實(shí)現(xiàn)訪問指定網(wǎng)頁了.



4. 小結(jié)

  • 基本步驟:

  • 導(dǎo)入模塊

  • 創(chuàng)建FastAPI框架對(duì)象

  • 通過@app路由裝飾器收發(fā)數(shù)據(jù)

  • 運(yùn)行服務(wù)器

HTTP協(xié)議與靜態(tài)Web服務(wù)器開發(fā)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
志丹县| 昌吉市| 胶州市| 江西省| 青阳县| 临海市| 恩施市| 灵石县| 岳阳县| 阿拉善右旗| 习水县| 稻城县| 阜新| 江达县| 江安县| 南漳县| 利辛县| 乌拉特中旗| 贺兰县| 东兰县| 邵武市| 南和县| 井研县| 普陀区| 永宁县| 新津县| 苗栗市| 辰溪县| 怀仁县| 涟源市| 平泉县| 吉首市| 黔江区| 军事| 微山县| 台湾省| 常山县| 睢宁县| 靖西县| 大荔县| 财经|