你學會了些什么211201?--http基礎知識

概念
HTTP–Hyper Text Transfer Protocol,超文本傳輸協議;是一種建立在TCP上的無狀態連接(短連接)。
整個基本的工作流程是:客戶端發送一個HTTP請求(Request ),這個請求說明了客戶端想要訪問的資源;服務端收到請求之后,服務端開始處理請求,并根據請求運行相應的邏輯,然后訪問資源,最后通過發送HTTP響應(Response)把結果返回給客戶端。
其中一個請求的開始到一個響應的結束稱為事務,當一個事務結束后會在服務端添加一條日志。

無狀態:
http協議為了保證服務器的內存,不會維持客戶端發過來的請求;即同一個客戶端的這次請求和上次請求是沒有對應關系。對于服務器來說,它并不知道這兩個請求來自同一個客戶端。例如:一個瀏覽器在短短幾秒之內兩次訪問同一接口時,服務器不會因為已經給它發過應答報文而不接受第二次服務請求。
為了解決這個問題, Web程序引入了Cookie機制來維護狀態。
短連接:
http1.0 默認使用短連接,就是:客戶端和服務端每進行一次http操作,就建立一次連接,任務結束就中斷連接。
建立連接–請求&響應–關閉連接
短連接中又包含:持久連接和非持久連接
非持久連接:
非持久連接有一個很大的缺點就是,每一個http請求都需要建立一個TCP連接 (http 1.0版本)
持久連接:
HTTP 1.1默認進行持久連接keep-alive,當TCP連接建立成功,并且在一次請求和響應完成后TCP不會立刻斷開,會有一個超時時間keep-alive,在超時時間到期后TCP連接才會斷開

一、URL結構

HTTP使用統一資源標識符(URL)來建立連接和傳輸數據,URL包含了用于查找某個資源的信息。
URL作用:通過URL可以到達任何一個地方尋找需要的資源,比如文件、音樂、圖片等等;URL是Internet上的地址簿,定位網絡資源的地址。
URL一般由以下部分構成:
https://code-api-pc.dao3.fun:443/map/tab/maps?offset=4&limit=32&tabKey1=mapPotential&orderBy=0
1.協議部分
該URL的協議部分為https:,表示網頁用的是HTTPS協議,后面的//為分隔
2.域名部分
域名是code-api-pc.dao3.fun,發送請求時,需要向DNS服務器解析IP;解析之后會得到類似我們通過ping得到的ip地址,如192.168.16.106。極端情況下,如果為了優化請求,可以直接用IP作為域名使用
3.端口部分
域名后面的443表示端口,和域名之間用:分隔,端口不是一個URL的必須的部分。使用https協議時,如果端口是443,可以省略不寫;與之相關聯的是http的默認端口是80。
4.虛擬目錄部分
從域名的第一個/開始到最后一個/為止,是虛擬目錄的部分。其中,虛擬目錄也不是URL必須的部分,本例中的虛擬目錄是/map/tab/
5.文件名部分
從域名最后一個/開始到?為止,是文件名部分;本例中的文件名是maps
6.查詢條件部分
從?開始到結束的部分是參數部分,又稱為搜索部分、查詢部分。本例中的參數是offset=4&limit=32&tabKey1=mapPotential&orderBy=0,例子中有多個參數,各個參數之間用&作為分隔符。
**7.擴展:**有的鏈接會攜帶錨點,其作用是定位到網頁的某一個位置,例如通過鏈接直接定位到購物網站的秒殺活動的顯示位置

二、HTTP 中 Request & Response 介紹

Request
HTTP的請求包括:請求行(request line)、請求頭部(header)、空行 和 請求數據 四個部分組成
在這里插入圖片描述

1.請求行
POST為請求類型,/ugc/creator/content/publish為要訪問的資源,HTTP2.0是協議
2.請求頭部
從第二行起為請求頭部,Host指出請求的目的地(主機域名);User-Agent是客戶端的信息,它是檢測瀏覽器類型的重要信息,由瀏覽器定義,并且在每個請求中自動發送。
3.空行
請求頭后面必須有一個空行
4.請求數據
請求的數據也叫請求體

Response
一般情況下,服務器收到客戶端的請求后,就會有一個HTTP的響應消息,HTTP響應也由4部分組成,分別是:狀態行、響應頭、空行 和 響應體。
在這里插入圖片描述

1.狀態行
狀態行由協議HTTP2.0、狀態碼200、狀態消息OK組成
2.響應頭
響應頭是客戶端可以使用的一些信息,如:date(生成響應的日期)、content-Type(類型及編碼格式)等等
3.空行
響應頭和響應體之間必須有一個空行
4.響應體
響應正文,例子中是鍵值對信息

三、HTTP狀態碼

HTTP狀態碼由三個十進制數字組成,第一個十進制數字定義了狀態碼的類型。
響應分為五類:信息響應(100–199),成功響應(200–299),重定向(300–399),客戶端錯誤(400–499)和服務器錯誤(500–599)
類別描述1xx信息,服務器錯誤,服務器在處理請求的過程中發生了錯誤2xx成功,操作被成功接收并處理3xx重定向,需要進一步的操作以完成請求4xx客戶端錯誤,請求包含語法錯誤或無法完成請求5xx服務器錯誤,服務器在處理請求的過程中發生了錯誤

工作中常見的狀態碼:
100:unknownError
200:OK,請求成功
302:重定向;(臨時)服務器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以后的請求
401:請求要求用戶的身份認證
403:Forbidden服務器理客戶端的請求,但是拒絕執行此請求(沒有權限)
404:NotFound服務器無法根據客戶端的請求找到資源(網頁)
500:服務器內部錯誤,無法完成請求

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

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

相關文章

MCU開發學習記錄8 - 基本定時器學習與實踐(HAL庫) - 定時器DMA循環模式修改ARR值、定時器中斷方式修改ARR值 - STM32CubeMX

名詞解釋: TRGO:Trigger Out General Purpose Output ARR:Auto-reload PSC:Prescaler CNT:Counter EGR:event generation register 本文將介紹基本定時器的概念、相關函數以及STM32CubeMX生成定時器的配置…

考研系列-計算機網絡沖刺考點匯總(上)

寫在前面 本文將總結王道408考研課程的計算機網絡沖刺考點的第一章到第三章內容(計算機網絡體系結構、物理層、數據鏈路層)。【圖片較多,加載需要時間,可以提前打開加載~~】 第一章、計算機網絡體系結構 注意:PCI(頭部…

設計模式每日硬核訓練 Day 14:組合模式(Composite Pattern)完整講解與實戰應用

🔄 回顧 Day 13:橋接模式小結 在 Day 13 中,我們學習了橋接模式(Bridge Pattern): 用于將“抽象”與“實現”分離,適用于雙維度變化場景(如圖形類型 渲染方式)。它強調…

訊聯桌面TV版apk下載-訊聯桌面安卓電視版免費下載安裝教程

在智能電視的使用過程中,一款好用的桌面應用能極大提升我們的使用體驗。訊聯桌面 TV 版就是這樣一款備受關注的應用,它可以讓安卓電視擁有更個性化、便捷的操作界面。今天,就為大家詳細介紹訊聯桌面 TV 版 apk 的免費下載安裝教程。 一、下載…

Nginx知識點

Nginx發展歷史 Nginx 是由俄羅斯程序員 Igor Sysoev 開發的高性能開源 Web 服務器、反向代理服務器和負載均衡器 ,其歷史如下: 起源與早期開發(2002 - 2004 年) 2002 年,當時 Igor Sysoev 在為俄羅斯門戶網站 Rambl…

uview1.0 tabs組件放到u-popup中在微信小程序中滑塊樣式錯亂

解決思路 重新計算布局信息&#xff1a;在彈窗顯示后重新調用 init 方法來計算組件的布局信息。使用 nextTick&#xff1a;保證在視圖更新之后再進行布局信息的計算。 <u-tabs ref"tabsRef" ></u-tabs> makeClick(){this.makeShowtruethis.$nextTick…

騰訊一面-軟件開發實習-PC客戶端開發方向

1.自我介紹就不多贅述了 2. 請介紹一下你的項目經歷 - 介紹了專輯鑒賞項目&#xff0c;前端使用html語言編寫&#xff0c;后端基于http協議使用C語言進行網頁開發。此外&#xff0c;還提及項目中涉及處理多線程問題以及做過內存池管理項目。 3. 項目中HTTP協議是使用庫實現的…

[數據可視化] Datagear使用心得:從數據整備到可視化聯動實踐

Datagear 是一款功能強大的數據可視化與報表工具&#xff0c;在日常數據分析與展示過程中&#xff0c;能有效幫助用戶構建交互式報表與面板。本文結合實際使用場景&#xff0c;總結了在 Datagear 平臺上關于元數據整備、Board 面板設計、圖表嵌入等方面的使用經驗&#xff0c;供…

【音視頻】MP4解封裝

一、概述 實現了讀取mp4文件&#xff0c;提取出h264和aac文件&#xff0c;可以直接播放 二、實現過程 準備文件 在build路徑下添加mp4文件 同時&#xff0c;添加main函數參數&#xff0c;表示輸入文件和輸出文件 打開文件 打開輸入文件&#xff0c;初始化格式上下文 char…

idea2024.1雙擊快捷方式打不開

idea2024.1突然雙擊快捷方式打不開&#xff0c;使用管理員運行也打不開 在安裝的idea路徑下的bin目錄下雙擊打開idea.bat文件&#xff0c;要是打不開使用txt格式打開&#xff0c;打開后在最后一行加上pause&#xff0c;之后保存。 看看報錯信息是不是有一個initializedExcept…

【錯誤記錄】Windows 命令行程序循環暫停問題分析 ( 設置 “ 命令記錄 “ 選項 | 啟用 “ 丟棄舊的副本 “ 選項 | 將日志重定向到文件 )

文章目錄 一、報錯信息二、問題分析1、Windows 命令行的緩沖區機制2、命令記錄設置 三、解決方案1、設置 " 命令記錄 " 選項2、將日志重定向到文件 一、報錯信息 Java 程序中 , 設置 無限循環 , 每次循環 休眠 10 秒后 , 再執行程序邏輯 , 在命令行中打印日志信息 ; …

STM32H5開發陀螺儀LSM6DSV16X(1)----輪詢獲取陀螺儀數據

STM32H5開發陀螺儀LSM6DSV16X.1--輪詢獲取陀螺儀數據 概述視頻教學樣品申請源碼下載硬件準備參考程序通信模式管腳定義IIC通信模式速率新建工程工程模板保存工程路徑芯片配置工程模板選擇時鐘設置UART配置UART屬性配置設置e2studio堆棧e2studio的重定向printf設置R_SCI_UART_Op…

Android端使用無障礙服務實現遠程、自動刷短視頻

最近在做一個基于無障礙自動刷短視頻的APP&#xff0c;需要支持用任意藍牙遙控器遠程控制&#xff0c; 把無障礙服務流程大致研究了一下&#xff0c;從下面3個部分做一下小結。 1、需要可調整自動上滑距離和速度以適配不同的屏幕和應用 智能適配99%機型&#xff0c;滑動參數可…

Spark和Hadoop的區別和聯系

Hadoop 和 Spark 的區別 1. 架構 Hadoop&#xff1a;基于 HDFS&#xff08;分布式文件系統&#xff09;和 MapReduce&#xff08;分布式計算框架&#xff09;。HDFS 負責數據的分布式存儲&#xff0c;而 MapReduce 是其主要的計算框架&#xff0c;通過 Map 和 Reduce 任務進行…

【版本控制】idea中使用git

大家好&#xff0c;我是jstart千語。接下來繼續對git的內容進行講解。也是在開發中最常使用&#xff0c;最重要的部分&#xff0c;在idea中操作git。目錄在右側哦。 如果需要git命令的詳解&#xff1a; 【版本控制】git命令使用大全-CSDN博客 一、配置git 要先關閉項目&#xf…

論文閱讀:2023 arxiv A Survey of Reinforcement Learning from Human Feedback

A Survey of Reinforcement Learning from Human Feedback https://arxiv.org/pdf/2312.14925 https://www.doubao.com/chat/3506943124865538 速覽 這篇論文是關于“從人類反饋中進行強化學習&#xff08;RLHF&#xff09;”的綜述&#xff0c;核心是講如何讓AI通過人類反…

單片機 + 圖像處理芯片 + TFT彩屏 進度條控件

進度條控件使用說明 概述 本進度條控件基于單片機 RA8889/RA6809 TFT開發&#xff0c;提供了簡單易用的進度顯示功能。控件支持多個進度條同時顯示、自定義顏色、邊框和標簽等特性&#xff0c;適用于需要直觀顯示進度信息的各類應用場景。 特性 支持多個進度條同時顯示可…

數據處理: OPTICS聚類及Python實現

1. 基本原理 OPTICS&#xff08;Ordering Points To Identify the Clustering Structure&#xff09;是一種基于密度的聚類算法&#xff0c;可視為DBSCAN的改進版本。它能夠識別不同密度的簇&#xff0c;并自動發現數據中的層次化聚類結構&#xff0c;適用于復雜分布的數據集…

PyCharm 在 Linux 上的完整安裝與使用指南

PyCharm 在 Linux 上的完整安裝與使用指南—目錄 一、PyCharm 簡介二、下載與安裝1. 下載 PyCharm2. 安裝前的依賴準備3. 安裝步驟方法 1&#xff1a;通過 Snap 安裝&#xff08;推薦&#xff09;方法 2&#xff1a;手動安裝&#xff08;從官網下載 .tar.gz 文件&#xff09;方…

【React】路由器 React-Router

安裝路由模式路由組件和屬性 (Link、NavLink、Outlet、Routes、Navigate、element)路由傳參 ( Hook&#xff1a;useParams 、useSearchParams )路由跳轉&#xff08;Hook&#xff1a;useNavigate&#xff09;路由的構建 前端路由指的是一種將瀏覽器URL與特定頁面或視圖關聯起來…