Html和websocket初識

来源:https://www.cnblogs.com/bigberg/archive/2018/02/05/8418849.html
-Advertisement-
Play Games

一、web框架 眾所周知,對於所有的Web應用,本質上其實就是一個socket服務端,用戶的瀏覽器其實就是一個socket客戶端。 上述通過socket來實現了其本質,而對於真實開發中的python web程式來說,一般會分為兩部分:伺服器程式和應用程式。伺服器程式負責對socket伺服器進行封裝, ...


一、web框架

  眾所周知,對於所有的Web應用,本質上其實就是一個socket服務端,用戶的瀏覽器其實就是一個socket客戶端。

import socket
  
def handle_request(client):
    buf = client.recv(1024)
    client.send(b"HTTP/1.1 200 OK\r\n\r\n")
    client.send(b"Hello, Bigberg")
  
def main():
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.bind(('localhost',8000))
    sock.listen(5)
  
    while True:
        connection, address = sock.accept()
        handle_request(connection)
        connection.close()
  
if __name__ == '__main__':
    main()

  上述通過socket來實現了其本質,而對於真實開發中的python web程式來說,一般會分為兩部分:伺服器程式和應用程式。伺服器程式負責對socket伺服器進行封裝,併在請求到來時,對請求的各種數據進行整理。應用程式則負責具體的邏輯處理。為了方便應用程式的開發,就出現了眾多的Web框架,例如:Django、Flask、web.py 等。不同的框架有不同的開發方式,但是無論如何,開發出的應用程式都要和伺服器程式配合,才能為用戶提供服務。這樣,伺服器程式就需要為不同的框架提供不同的支持。這樣混亂的局面無論對於伺服器還是框架,都是不好的。對伺服器來說,需要支持各種不同框架,對框架來說,只有支持它的伺服器才能被開發出的應用使用。這時候,標準化就變得尤為重要。我們可以設立一個標準,只要伺服器程式支持這個標準,框架也支持這個標準,那麼他們就可以配合使用。一旦標準確定,雙方各自實現。這樣,伺服器可以支持更多支持標準的框架,框架也可以使用更多支持標準的伺服器。

  WSGI(Web Server Gateway Interface)是一種規範,它定義了使用python編寫的web app與web server之間介面格式,實現web app與web server間的解耦。

二、Html是什麼

  • 超文本標記語言(Hypertext Markup Language,HTML)通過標簽語言來標記要顯示的網頁中的各個部分。一套規則,瀏覽器認識的規則
  • 瀏覽器按順序渲染網頁文件,然後根據標記符解釋和顯示內容。但需要註意的是,對於不同的瀏覽器,對同一標簽可能會有不完全相同的解釋(相容性)
  • 靜態網頁文件擴展名:.html 或 .htm

三、Html結構

  

  • <!DOCTYPE html> 告訴瀏覽器使用什麼樣的html或者xhtml來解析html文檔
  • <html></html>是文檔的開始標記和結束標記。此元素告訴瀏覽器其自身是一個 HTML 文檔,在它們之間是文檔的頭部<head>和主體<body>
  • <head></head>元素出現在文檔的開頭部分。<head>與</head>之間的內容不會在瀏覽器的文檔視窗顯示,但是其間的元素有特殊重要的意義。
  • <title></title>定義網頁標題,在瀏覽器標題欄顯示。
  • <body></body>之間的文本是可見的網頁主體內容

四、Html標簽格式  

   

 

  標簽的語法:

    <標簽名 屬性1=“屬性值1” 屬性2=“屬性值2”……>內容部分</標簽名>
    <標簽名 屬性1=“屬性值1” 屬性2=“屬性值2”…… />

五、Html註釋

  註釋 <!-- --> 

<!DOCTYPE html>
# 單行註釋
<!-- 這是註釋格式 -->
<!--DOCTYPE 對應關係-->
<html lang="en">
# 多行註釋
<!-- html標簽,只能有一個html標簽,標簽內部可以寫屬性,
    lang="en"就是內部屬性-->

<head>
    <!--head標簽中定義的東西外部看不見,除了title標簽,title是標題 -->
    <meta charset="UTF-8">
    <!-- 指定字元編碼 -->
    <title>網頁標題</title>
    <!---->
</head>
<body>
    <a href="http://www.baidu.com">百度</a>
</body>
</html>

  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • iOS 擴展思維導向圖,如下圖所示: ...
  • UITabBarController與UINavigationController類似,UITabBarController也可以用來控制多個頁面導航,用戶可以在多個視圖控制器之間移動,並可以定製屏幕底部的選項卡欄。 藉助屏幕底部的選項卡欄,UITabBarController不必像UINaviga ...
  • Chrome瀏覽器及調試教程 在web開發過程中,我們在寫JavaScript腳本時難免會遇到各種bug,這時,我們就需要去調試我們的JavaScript腳本,然後去修改代碼。最簡單的調試方法就是使用alert方法,將可信息通過alert方法的彈窗顯示出來。但是,alert方法有幾個弊端: 1)al ...
  • 今天想早點休息,在家裡的事情總是特別多的,這幾天的確是都不是很想好好學習,然而又有太多太多的事情等著自己去做,然後在家裡還是不能靜下心來自習的,也可能是雞湯喝的太少了。 這是老師寫的homework4,就根據自己的理解然後邊寫註釋。 其實不太能理解這裡為什麼要寫return。。。但是刪了這一句又不行 ...
  • 一、完整的URL由以下幾部分組成: scheme:通信協議,常用的有:http/ftp。 host:主機,伺服器(電腦)功能變數名稱或IP地址 port:埠,整數,可選,省略時使用預設埠,http的預設埠是80. path:路徑,由零或多個“/”符號隔開的字元,一般用來表示主機的一個目錄或者文件地址 ...
  • 要求實現一個輕量級的在客戶端篩選的combobox,支持大數據量(超過1000個items),能快速檢索內容,並支持數據的設置和活動等基本操作。在這之前嘗試過使用Jquery UI的Autocomplete,但是當數據量太大時客戶端檢索速度太慢(甚至會導致瀏覽器卡死)。索性乾脆基於JQuery自己寫 ...
  • 一、命名規則說明 二、相對網頁外層重要部分css樣式命名 css命名其他說明 DIV+CSS命名小結:無論是使用“.”選擇符號開頭命名,還是使用“#”選擇符號開頭都無所謂,但我們最好遵循——主要的,重要的,特殊的,最外層的盒子用“#”選擇符號開頭命名,其他都用“.”選擇符號開頭命名,同時要考慮命名的 ...
  • JavaScript對象的創建方式 在JavaScript中,創建對象的方式包括兩種:對象字面量和使用new表達式。對象字面量是一種靈活方便的書寫方式,例如: 1 2 3 4 5 6 var o1 = { p:”I’m in Object literal”, alertP:function(){ a ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...