Web開發核心

文章目錄

  • 1.http協議簡介
  • 2.http協議特性
  • 3.http請求和響應協議
  • 4.最簡單的Web程序
  • 5.基于flask搭建web?站
  • 6.瀏覽器開發者?具(重點)

1.http協議簡介

HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用于
萬維網(WWW:Norld Wide Web)服務器與本地瀏覽器之間傳輸超文本的
傳送協議。HTTP是一個屬于應用層的面向對象的協議,由于其簡捷、快速
的方式,適用于分布式超媒體信息系統。它于1990年提出,經過幾年的使
用與發展,得到不斷地完善和擴展。HTTP協議工作于客戶端服務端架構為
上。瀏覽器作為HTTP客戶端通過URL向HTTP服務端即WEB服務器發送所有
請求。Web服務器根據接收到的請求后,向客戶端發送響應信息。
![[Pasted image 20240525200441.png]]

2.http協議特性

  1. 基于TCP/IP協議
    http協議是基于TCP/IP協議之上的應用層協議。
  2. 基于請求一響應模式
    HTTP協議規定,請求從客戶端發出,最后服務器端響應該請求并返回。換句話說,肯定
    是先從客戶端開始建立通信的,服務器端在沒有接收到請求之前不會發送響應
  3. 無狀態保存
    HTTP是一種不保存狀態,即無狀態(stateless)協議。HTTP協議自身不對請求和響
    應之間的通信狀態進行保存。也就是說在“TTP這個級謎別,協議對于發送過的請求或響
    應都不做持久化處理。
    使用HTTP協議,每當有新的請求發送時,就會有對應的新響應產生。協議本身并不保
    留之前一切的請求或響應報文的信息。這是為了更快地處理大量事務,確保協議的可
    伸縮性,而特意把HTTP協議設計成如此簡單的。
  4. 短連接和長連接
    HTTP1.O默認使用的是短連接。瀏覽器和服務器每進行一次HTTP操作,就建立一次
    連接,任務結束就中斷連接。
    HTTP/1.1起,默認使用長連接。要使用長連接,客戶端和服務器的HTTP首部的
    Connection都要沒置為keep-a]iye,才能支特長連接HTTP長連接,指的是復用TCP連接。多個HTTP請求可以復用同一個TCP連接,這就節省了TCP連接建立和斷開的消耗。

3.http請求和響應協議

![[Pasted image 20240525200948.png]]

htp協議包含由瀏覽器發送數據到服務器需要遵循的請求協議與服務器發送數據到瀏覽器需要遵循的請求協議。用于HTTP協議交互的信被為HTTP報文。請求端(客戶端)的HTTP報文做請求報文,響應端(服務器端)的做響應報文。HTTP報文本身是由多行數據構成的字文本。
![[Pasted image 20240525201022.png]]

一個完整的URL包括:協議、ip、端口、路徑、參數
例如:https:/www.baidu.com/s?wd=yuan
其中https是協議,www,baidu.com是IP,端口默認80,/s是路徑,參數是wd=yuan請求方式:get與post請求GET提交的數據會放在URL之后,以?分割URL和傳輸數據,參數之
間以&相連,如EditBook?name=test1&id=123456.P0ST方法是把提交
的數據放在HTTP包的請求體中
GET提交的數據大小有限制(因為瀏覽器對URL的長度有限制),而POST方法提交的數據沒有限制
響應狀態碼:狀態碼的職是當客戶端向服務器端發送請求時,返回的請求結果。借助狀態碼,用戶可以知道服務器端是正常理了請求,還是出現了。狀態碼如2000K,以3位數字和原因組成。

4.最簡單的Web程序

import socket  sock = socket.socket()  
sock.bind(("127.0.0.1", 7777))  
sock.listen(3)  print("服務器已啟動..")  
while True:  conn, addr = sock.accept()  data = conn.recv(1024)  print("收到請求:", data.decode())  response = """HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n  <h1>Hello, World!</h1>    <img src='https://img0.baidu.com/it/u=4011424408,4733765&fm=253&fmt=auto&app=138&f=JPEG?W=500&h=750'>"""  conn.sendall(response.encode())  conn.close()

5.基于flask搭建web?站

from flask import Flask, render_template  
import datetime  app = Flask(__name__, template_folder="templates")  @app.route("/index")  
def index():  return render_template("index.html")  @app.route("/timer")  
def timer():  now = datetime.datetime.now().strftime("%Y-%m-%d %X")  return render_template("timer.html", now=now)  app.run()

6.瀏覽器開發者?具(重點)

(1)Elements
(2)Network
(3)Application

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/15552.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/15552.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/15552.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【狂神說Java】Redis筆記以及拓展

一、Redis 入門 Redis為什么單線程還這么快&#xff1f; 誤區1&#xff1a;高性能的服務器一定是多線程的&#xff1f; 誤區2&#xff1a;多線程&#xff08;CPU上下文會切換&#xff01;&#xff09;一定比單線程效率高&#xff01; 核心&#xff1a;Redis是將所有的數據放在內…

用于時間序列概率預測的蒙特卡洛模擬

大家好&#xff0c;蒙特卡洛模擬是一種廣泛應用于各個領域的計算技術&#xff0c;它通過從概率分布中隨機抽取大量樣本&#xff0c;并對結果進行統計分析&#xff0c;從而模擬復雜系統的行為。這種技術具有很強的適用性&#xff0c;在金融建模、工程設計、物理模擬、運籌優化以…

【C語言】C語言-設備管理系統(源碼+數據文件)【獨一無二】

&#x1f449;博__主&#x1f448;&#xff1a;米碼收割機 &#x1f449;技__能&#x1f448;&#xff1a;C/Python語言 &#x1f449;公眾號&#x1f448;&#xff1a;測試開發自動化【獲取源碼商業合作】 &#x1f449;榮__譽&#x1f448;&#xff1a;阿里云博客專家博主、5…

AI大模型:大數據+大算力+強算法

前言&#xff1a;好久不見&#xff0c;甚是想念&#xff0c;我是辣條&#xff0c;我又回來啦&#xff0c;兄弟們&#xff0c;一別兩年&#xff0c;還有多少老哥們在呢&#xff1f; 目錄 一年半沒更文我干啥去了&#xff1f; AI大模型火了 人工智能 大模型的理解 為什么學習…

ComfyUI完全入門:圖生圖局部重繪

大家好&#xff0c;我是每天分享AI應用的螢火君&#xff01; 這篇文章的主題和美女有關&#xff0c;不過并不是教大家生產美女視頻&#xff0c;而是講解 ComfyUI 的圖生圖局部重繪&#xff0c;其中將會以美女圖片為例&#xff0c;來展示局部重繪的強大威力。 先看看效果&…

2024年5月26日 十二生肖 今日運勢

小運播報&#xff1a;2024年5月26日&#xff0c;星期日&#xff0c;農歷四月十九 &#xff08;甲辰年己巳月庚寅日&#xff09;&#xff0c;法定節假日。 紅榜生肖&#xff1a;馬、豬、狗 需要注意&#xff1a;牛、蛇、猴 喜神方位&#xff1a;西北方 財神方位&#xff1a;…

java hashmap在項目中的使用

java hashmap在項目中的使用 1&#xff0c;緩存機制&#xff1a; 在需要頻繁訪問數據但又不想每次都從數據庫或遠程服務獲取的場景中&#xff0c;可以使用 HashMap 作為緩存。例如&#xff0c;在一個 Web 應用程序中&#xff0c;用戶信息可能只需要在登錄時從數據庫檢索一次&a…

解釋器和編譯器(程序語言基礎)

一、解釋器 解釋器則是一種逐行或逐段地解釋執行源代碼的工具。解釋器會直接讀取源代碼&#xff0c;并在運行時逐行或逐段地解釋執行代碼&#xff0c;不生成獨立的目標代碼文件。解釋器適用于一些動態語言&#xff0c;允許用戶在代碼執行過程中進行交互&#xff0c;更容易調試…

【linux_常用的指令】

筆記 1連接遠程主機2 兩臺主機間復制2.1 查看當前目錄2.2 普通復制 3 創建能運行sudo命令的用戶3.1 更改用戶admin的密碼3.2 切換到admin用戶&#xff0c;并且啟動一個新的shell3.3 更改文件或目錄的權限 4 切換目錄5 解.tar.gz格式的壓縮包6 運行.sh文件7 查看當前目錄的所有文…

泛型中K T V E ? Object等分別代表的含義

E – Element (在集合中使用&#xff0c;因為集合中存放的是元素) T – Type&#xff08;Java 類&#xff09; K – Key&#xff08;鍵&#xff09; V – Value&#xff08;值&#xff09; N – Number&#xff08;數值類型&#xff09; &#xff1f; – 表示不確定的java類型&…

一個月速刷leetcodeHOT100 day07 輪轉數組 除自身以外的乘積 找到字符串中所有字母異位詞

輪轉數組 給定一個整數數組 nums&#xff0c;將數組中的元素向右輪轉 k 個位置&#xff0c;其中 k 是非負數。 示例 1: 輸入: nums [1,2,3,4,5,6,7], k 3 輸出: [5,6,7,1,2,3,4] 解釋: 向右輪轉 1 步: [7,1,2,3,4,5,6] 向右輪轉 2 步: [6,7,1,2,3,4,5] 向右輪轉 3 步: […

系統思考—跳出癥狀看全局

結束了《系統思考—跳出癥狀看全局》的迭代課程后&#xff0c;我感觸頗深。通過一個深入的案例研討、互動討論和實戰演練&#xff0c;學員們不僅更好地理解了如何跳出癥狀看全局&#xff0c;還掌握了制定更具前瞻性和可持續性策略的方法。我們還探討了如何在實際工作中應用這些…

《python編程從入門到實踐》day38

# 昨日知識點回顧 定義、遷移模型Entry # 今日知識點學習 18.2.7 Django shell 每次修改模型后&#xff0c;看到重啟后的效果需要重啟shell&#xff0c;退出shell會話Windows系統按ctrlZ或者輸入exit() 18.3 創建頁面&#xff1a;學習筆記主頁 創建頁面三階段&#xf…

介紹一下Hugging Face,這個公司的背景是什么

Hugging Face是一家成立于2016年的人工智能公司&#xff0c;專注于為AI研究人員和開發者提供開源模型庫和工具。以下是關于Hugging Face公司的詳細背景介紹&#xff1a; 公司歷史與創始人&#xff1a; Hugging Face由Clment Delangue、Julien Chaumond和Thomas Wolf三位法國籍…

E0144 “const char *“ 類型的值不能用于初始化 “char *“ 類型的實體

解決方案&#xff1a; 在Visual Studio中&#xff0c;在項目上右鍵&#xff0c;屬性 >> C/C >> 語言 >> 符合模式&#xff0c;改為“否”。

AI大模型探索之路-基礎篇5:GLM-4解鎖國產大模型的全能智慧與創新應用

目錄 前言一、GLM4大模型總體概述二、GLM4和GPT4功能對比三、GLM4和GPT4性能對比1、基礎能力&#xff08;英文&#xff09;2、指令跟隨能力3、對齊能力4、長文本能力5、多模態-文生圖 四、GLM-4 ALL Tools1、文生圖2、代碼解釋器3、網頁瀏覽4、Function Call5、多工具自動調用 …

【學習筆記】關于建模時需要調整的變量

在進行回歸分析時&#xff0c;選擇調整變量&#xff08;也就是模型中的協變量&#xff09;需要謹慎考慮。調整的變量并不一定必須是混雜因素&#xff0c;但通常情況下&#xff0c;目的是為了控制那些可能扭曲主要自變量和因變量關系的混雜因素。除了混雜因素&#xff0c;還有幾…

C語言之指針進階(3),函數指針

目錄 前言&#xff1a; 一、函數指針變量的概念 二、函數指針變量的創建 三、函數指針變量的使用 四、兩段特殊代碼的理解 五、typedef 六、函數指針數組 總結&#xff1a; 前言&#xff1a; 本文主要講述C語言指針中的函數指針&#xff0c;包括函數指針變量的概念、創建…

【面試干貨】事務的并發問題(臟讀、不可重復讀、幻讀)與解決策略

【面試干貨】事務的并發問題&#xff08;臟讀、不可重復讀、幻讀&#xff09;與解決策略 一、臟讀&#xff08;Dirty Read&#xff09;二、不可重復讀&#xff08;Non-repeatable Read&#xff09;三、幻讀&#xff08;Phantom Read&#xff09;四、總結 &#x1f496;The Begi…

Stable Diffusion——U-ViT用于擴散建模的 ViT 主干網

1.概述 擴散模型是最近出現的強大的深度生成模型&#xff0c;可用于生成高質量圖像。擴散模型發展迅速&#xff0c;可應用于文本到圖像生成、圖像到圖像生成、視頻生成、語音合成和 3D 合成。 除了算法的改進&#xff0c;骨干網的改進在擴散建模中也發揮著重要作用。一個典型…