国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Flask框架小程序后端分離開發(fā)學(xué)習(xí)筆記《1》網(wǎng)絡(luò)知識

這篇具有很好參考價值的文章主要介紹了Flask框架小程序后端分離開發(fā)學(xué)習(xí)筆記《1》網(wǎng)絡(luò)知識。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Flask框架小程序后端分離開發(fā)學(xué)習(xí)筆記《1》網(wǎng)絡(luò)知識

Flask是使用python的后端,由于小程序需要后端開發(fā),遂學(xué)習(xí)一下后端開發(fā)。

一、網(wǎng)址組成介紹

  1. 協(xié)議:http,https (https是加密的http)
  2. 主機(jī):g.cn zhihu.com之類的網(wǎng)址
  3. 端口:HTTP協(xié)議默認(rèn)是80,因此一般不用填寫
  4. 路徑下面的「/question/31838184」是路徑
    http://www.zhihu.com/question/31838184
    http://www.zhihu.com:80/

二、通信

電腦通信靠IP地址,IP地址記不住就發(fā)明了域名(domain name),然后電腦自動向DNS服務(wù)器(domain name server)查詢域名對應(yīng)的IP地址。

比如g.cn這樣的網(wǎng)址,可以通過電腦的ping程序查出對應(yīng)IP地址
ping g.cn
Flask框架小程序后端分離開發(fā)學(xué)習(xí)筆記《1》網(wǎng)絡(luò)知識,flask,學(xué)習(xí),筆記根據(jù)域名ping出來的ip不一定是一樣的。

三、端口是什么?

一個比喻:
用郵局互相寫信的時候,ip相當(dāng)于地址(也可以看做郵編,地址是域名)
端口是收信人姓名(因為一個地址比如公司、家只有一個地址,但是卻可能有很多收信人)
端口就是一個標(biāo)記收信人的數(shù)字。
端口是一個16位的數(shù)字,所以范圍是 0-65535 (2**16)

順著ip地址可以找到你的電腦,但是找不到與哪個程序通信。
端口就是某一個程序網(wǎng)絡(luò)服務(wù)的唯一表示,端口是由操作系統(tǒng)分配的,所以當(dāng)程序關(guān)閉端口會被回收,之后重新打開不一定是原先的端口了。

四、HTTP協(xié)議

一個傳輸協(xié)議,協(xié)議就是雙方都遵守的規(guī)范。
為什么叫超文本傳輸協(xié)議呢,因為收發(fā)的是文本信息。
1,瀏覽器(客戶端)按照規(guī)定的格式發(fā)送文本數(shù)據(jù)(請求)到服務(wù)器
2,服務(wù)器解析請求,按照規(guī)定的格式返回數(shù)據(jù)到瀏覽器
3,瀏覽器解析得到的數(shù)據(jù),并做相應(yīng)處理

請求和返回是一樣的數(shù)據(jù)格式,大致可分為4部分:
1,請求行或者響應(yīng)行
2,Header(請求的 Header中 Host字段是必須的,其他都是可選)
3,lrlnlrln(連續(xù)兩個換行回車符,用來分隔Header和Body)
4,Body(可選)(數(shù)據(jù)信息)

請求的格式,注意大小寫(這是一個不包含Body的請求):原始數(shù)據(jù)如下
‘GET / HTTP/1.1\r\nhost:g.cn\r\n\r\n’
打印出來如下兩行:
GET / HTTP/1.1
Host: g.cn

其中
1, GET是請求方法(還有POST等,這就是個標(biāo)志字符串而己)
2,/是請求的路徑(這代表根路徑)
3,HTTP/1.1中,1.1是版本號,通用了20年
具體字符串是’GET / HTTP/1.1 \r\nhost:g.cn \r\n\r\n ’

返回的數(shù)據(jù)如下
HTTP/1.1 301 Moved Permanently (1.1為版本、301為狀態(tài)碼)
Alternate-Protocol: 80: quic, p=0,80:quic , p=o
cache-Control: private,max-aqe=2592000
Content-Length: 218 (常見:body頁面長度218字節(jié))
Content-Type: text/ html; charset=UTF-8
Date: Tue,07 Jul 2015 02:57:59 GMT
Expires: Tue,07 Jl 2015 02:57:59 GMT
Location: http : / /www. google.cn/
server: gws
X-Frame-options: SAMEORIGIN
X一xSS-Protection: l; mode=block
(header頭部)

Body部分太長,先不貼了其中響應(yīng)行(第一行):

  1. HTTP/1.1是版本
  2. 301 是狀態(tài)碼
  3. Moved Permanently 是狀態(tài)碼的描述
    瀏覽器會自己解析Header部分,然后將Body顯示成網(wǎng)頁

五、后端web服務(wù)器做什么

主要就是解析請求,發(fā)送相應(yīng)的數(shù)據(jù)給客戶端。
例如下面的代碼就是模擬瀏覽器發(fā)送HTTP
請求給服務(wù)器并把收到的所有信息打印出來(使用的是最底層的socket,現(xiàn)階段不必
關(guān)心這種低層,web開發(fā)是上層開發(fā))

#codinq: utf-8

import socket
# socket 是操作系統(tǒng)用來進(jìn)行網(wǎng)絡(luò)通信的底層方案#簡而言之,就是發(fā)送/接收數(shù)據(jù)
#創(chuàng)建一個socket對象
#參數(shù)socket.AF_INET表示是ipv4協(xié)議]#參數(shù)socket. sOCK_STREAM表示是tcp協(xié)議
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#這兩個其實是默認(rèn)值,所以你可以不寫,如下
#s = socket.socket()    socket只能用于http協(xié)議的,不能用于https
#s = ssl. wrap_socket ( socket.socket ( ) )   這個用于https


#主機(jī)(域名或者ip)和端口
host = 'g.cn'
port = 80
#用connect函數(shù)連接上主機(jī),參數(shù)是一個tuple
s.connect( (host,port) )

#連接上后,可以通過這個函數(shù)得到本機(jī)的ip和端口(本地ip路由器分配得到,本地端口操作系統(tǒng)分配的)
ip, port = s.getsockname()
print('本機(jī)ip 和port {}\{}'.format(ip, port))

#構(gòu)造一個HTTP請求
http_request = 'GET / HTTP/1.1\r\nhost:{}\r\n\r\n'.format(host)

#發(fā)送HTTP請求給服務(wù)器
#send函數(shù)只接受bytes 作為參數(shù)
# str.encode把str轉(zhuǎn)換為bytes,編碼是utf-8
request = http_request.encode('utf-8')
print('請求',request)
s.send(request)


# 接受服務(wù)器的響應(yīng)數(shù)據(jù)
#參數(shù)是長度,這里為1023字節(jié)
#所以這里如果服務(wù)器返回的數(shù)據(jù)中超過1023的部分你就得不到了,正經(jīng)一次性最長大概1500字節(jié),
response = s.recv (1023)
#輸出響應(yīng)的數(shù)據(jù),bytes類型
print('響應(yīng)',response)
#轉(zhuǎn)成str再輸出
print('響應(yīng)的str 格式',response.decode ('utf-8'))

# 這就是平時我們在瀏覽器輸入“g.cn”時候的內(nèi)部細(xì)節(jié)


# 運行結(jié)果
# 本機(jī)ip 和port 10.2.93.112\53538
# 請求 b'GET / HTTP/1.1\r\nhost:g.cn\r\n\r\n'
# 響應(yīng) b'HTTP/1.1 301 Moved Permanently\r\nLocation: https://google.cn/\r\nX-Content-Type-Options: nosniff\r\nServer: sffe\r\nContent-Length: 215\r\nX-XSS-Protection: 0\r\nDate: Tue, 16 Jan 2024 02:26:18 GMT\r\nExpires: Tue, 16 Jan 2024 02:56:18 GMT\r\nCache-Control: public, max-age=1800\r\nContent-Type: text/html; charset=UTF-8\r\nAge: 891\r\n\r\n<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">\n<TITLE>301 Moved</TITLE></HEAD><BODY>\n<H1>301 Moved</H1>\nThe document has moved\n<A 
# 響應(yīng)的str 格式 HTTP/1.1 301 Moved Permanently
# Location: https://google.cn/
# X-Content-Type-Options: nosniff
# Server: sffe
# Content-Length: 215
# X-XSS-Protection: 0
# Date: Tue, 16 Jan 2024 02:26:18 GMT
# Expires: Tue, 16 Jan 2024 02:56:18 GMT
# Cache-Control: public, max-age=1800
# Content-Type: text/html; charset=UTF-8
# Age: 891
#
# <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
# <TITLE>301 Moved</TITLE></HEAD><BODY>
# <H1>301 Moved</H1>
# The document has moved
# <A >here</A>.
# </BODY></HTML>

# 上面一部分是瀏覽器的控制信息,我們看不到的,下面的是網(wǎng)頁頁面代碼,經(jīng)過瀏覽器渲染之后就會展示給我們看

本筆記是學(xué)習(xí)B站某視頻的教程,作為一個自己的學(xué)習(xí)記錄,侵刪。文章來源地址http://www.zghlxwxcb.cn/news/detail-796973.html

到了這里,關(guān)于Flask框架小程序后端分離開發(fā)學(xué)習(xí)筆記《1》網(wǎng)絡(luò)知識的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Python - flask后端開發(fā)筆記

    ? Flask入門 有一篇很全面的博客可以參考:Python Flask Web 框架入門 跨域問題處理 文件發(fā)送 ?

    2024年02月07日
    瀏覽(25)
  • Python前后端分離之Django框架最基本后端CRUD開發(fā)

    Python前后端分離之Django框架最基本后端CRUD開發(fā)

    目錄 ? Django介紹: 開發(fā)準(zhǔn)備 后端編寫Django項目里的app模塊 編寫models.py文件(寫模型): ?編寫序列化文件(serializers.py) 編寫視圖(Views) 新建urls.py文件,填寫路徑 ?編輯 進(jìn)行遷移: 前端: 編寫接口文件api.js 編寫CRUD文件 編寫index.vue文件 前端界面使用: 運行項目: 提

    2024年01月23日
    瀏覽(99)
  • 聊天機(jī)器人開發(fā)實戰(zhàn)--(微信小程序+SpringCloud+Pytorch+Flask)【后端部分】

    趁著五一有時間,先把大三下個學(xué)期的期末作業(yè)做了,把微信小程序和Java開發(fā)的一起做了。順便把機(jī)器學(xué)習(xí)的也一起做了。所以的話,我們完整項目的技術(shù)體系主要有 微信小程序開發(fā),Java Web開發(fā)(因為我喜歡把admin后臺管理和用戶端服務(wù)分開,所有我選擇SpringCloud做一個切

    2024年02月03日
    瀏覽(18)
  • 【后端開發(fā)】尚硅谷 SpringCloud 學(xué)習(xí)筆記

    【后端開發(fā)】尚硅谷 SpringCloud 學(xué)習(xí)筆記

    2.3.1 引入RestTemplate 2.3.2 遠(yuǎn)程調(diào)用支付模塊 前面我們沒有服務(wù)注冊中心,也可以服務(wù)間調(diào)用,為什么還要服務(wù)注冊? 當(dāng)服務(wù)很多時,單靠代碼手動管理是很麻煩的,需要一個公共組件,統(tǒng)一管理多服務(wù),包括服務(wù)是否正常運行,等 Eureka用于** 服務(wù)注冊 ,目前官網(wǎng) 已經(jīng)停止更新** 創(chuàng)建項目

    2024年02月10日
    瀏覽(25)
  • 若依框架(前后端分離) 之IDEA中Maven后端打包

    若依框架(前后端分離) 之IDEA中Maven后端打包

    Maven是一個跨平臺的項目管理工具。作為Apache組織的一個頗為成功的開源項目,其主要服務(wù)于基于Java平臺的項目創(chuàng)建,依賴管理和項目信息管理,是一個自動化構(gòu)建工具。maven是Apache的頂級項目,解釋為“專家,內(nèi)行”,它是一個項目管理的工具,maven自身是純java開發(fā)的(

    2024年02月09日
    瀏覽(20)
  • 【附源碼】基于flask框架基于微信小程序的食療坊軟件開發(fā) (python+mysql+論文)

    【附源碼】基于flask框架基于微信小程序的食療坊軟件開發(fā) (python+mysql+論文)

    本系統(tǒng)(程序 + 源碼)帶文檔 lw 萬字以上 ? 文末可獲取本課題的源碼和程序 選題背景: 隨著科技的快速發(fā)展和智能手機(jī)的普及,微信小程序作為一種輕量級應(yīng)用,已經(jīng)滲透到人們?nèi)粘I畹姆椒矫婷?。它無需下載安裝,即用即走的特點深受用戶喜愛。在健康飲食領(lǐng)域,人們

    2024年04月08日
    瀏覽(22)
  • 前后端分離------后端創(chuàng)建筆記(02)

    前后端分離------后端創(chuàng)建筆記(02)

    ?本文章轉(zhuǎn)載于【SpringBoot+Vue】全網(wǎng)最簡單但實用的前后端分離項目實戰(zhàn)筆記 - 前端_大菜007的博客-CSDN博客 僅用于學(xué)習(xí)和討論,如有侵權(quán)請聯(lián)系 源碼:https://gitee.com/green_vegetables/x-admin-project.git 素材:https://pan.baidu.com/s/1ZZ8c-kRPUxY6FWzsoOOjtA 提取碼:up4c 項目概述筆記:https://blog

    2024年02月12日
    瀏覽(20)
  • 全面解析若依框架(springboot-vue前后分離--后端部分)

    全面解析若依框架(springboot-vue前后分離--后端部分)

    前端啟動 后端啟動 創(chuàng)建數(shù)據(jù)庫ry-vue,導(dǎo)入ry_2021xxxx.sql,quartz.sql,加載好依賴直接啟動。 后端技術(shù) SpringBoot Spring Security JWT MyBatis Druid Fastjson 分頁實現(xiàn) 導(dǎo)入導(dǎo)出 上傳下載(框架使用的簡單,不做講解) 權(quán)限控制 事務(wù)管理(這里使用@Transactional,不做講解,具體和Spring的8種事務(wù)

    2024年01月16日
    瀏覽(54)
  • Python-web開發(fā)學(xué)習(xí)筆記(3):Flask Demo,一個網(wǎng)站開發(fā)小案例

    Python-web開發(fā)學(xué)習(xí)筆記(3):Flask Demo,一個網(wǎng)站開發(fā)小案例

    ?? 推薦關(guān)注我的另一個專欄系列:大道至簡,該系列收錄了許多優(yōu)質(zhì)的人工智能算法博文,包括機(jī)器學(xué)習(xí)和自然語言處理等,持續(xù)更新中,歡迎各位關(guān)注~ ? 介紹完P(guān)ython-web開發(fā)學(xué)習(xí)筆記(2)--- HTML基礎(chǔ)_尚拙謹(jǐn)言的博客-CSDN博客,我們來搞一個簡單的網(wǎng)站小案例,帶大家更進(jìn)

    2024年02月06日
    瀏覽(24)
  • web開發(fā)學(xué)習(xí)筆記(8.java web后端開發(fā)基礎(chǔ)知識)

    web開發(fā)學(xué)習(xí)筆記(8.java web后端開發(fā)基礎(chǔ)知識)

    1.使用spring開發(fā)的優(yōu)勢,spring發(fā)展到今天已經(jīng)形成了一種開發(fā)生態(tài)圈,提供了若干個子項目,每個項目用于完成特定的功能。使用spring全家桶,可以做到很多事情,可以很方便的套用很多的組件。 2.pom構(gòu)成 指定父工程 指定web構(gòu)件 指定springboot打包控件 3.啟動類的寫法 4.contro

    2024年01月18日
    瀏覽(39)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包