HTTP請求-請求行

請求行(方法,URL,版本號)

方法:

描述了這次請求的目的。

常見方法:

GET:從服務器拿一個東西過來(讀操作)

POST:往服務器放一個東西去(寫操作)

兩個典型的使用POST的場景:1.登錄? ? ? ? 2.上傳

從使用習慣上,GET通常沒有body,POST通常有body,

GET會把需要給服務器補充的信息放到query string中(url)

POST會把這些信息放到body中,body中可以放任意格式的數據,前后端約定好即可(json是非常常用的格式)

GET與POST的區別

首先,GET與POST本質上沒有區別。

? ? ? ? 使用POST的場景可以替換成GET,反之亦然 => 取決于代碼的寫法,尤其是服務器和客戶端都是自己實現的場景。但是部分瀏覽器/服務器某些情況下GET和POST不能完美替換,大部分情況下相互替換問題不大。

? ? ? ? 但是GET和POST在使用情況下還是有區別的:

1.GET習慣于把數據放在url的query string中,POST習慣于放在body中。

GET可以把數據放在body中 => 有的瀏覽器/服務器不支持。

POST也可放在query string中 => 對于絕大多數瀏覽器/服務器都適用。

2.語義上的區別,標準文檔中,GET的語義用來獲取數據,POST的語義是用來提交數據。

實際應用中并不一定按照上述要求。

3.關于冪等性,標準文檔中,建議GET請求實現成冪等的,POST則無要求。

每次輸入的內容一定,輸出的結果也一定,稱為冪等。

每次輸入的內容一定,輸出的結果不一定,不是冪等。

如果一個操作本身是冪等的,此時就可以進行緩存了

4.GET請求可以被瀏覽器收藏,POST不可以。

其他方法:

1.PUT與POST相似,只是具有冪等性,一般用于更新。

2.DELETE刪除服務器指定資源

3.OPTIONS返回服務器所支持的請求方法。

4.HEAD類似于GET,只不過響應體不返回,只返回響應頭。

5.TRACE回顯服務器收到的請求,測試的時候會用到。

6.CONNECT預留,暫無使用。

URL

用于描述一個網絡上的資源位置。

一個完整的URL結構:

協議方案名+登錄信息(認證)+服務器地址+服務器端口+帶有層次的文件地址+查詢字符串+片段標識符

登錄信息(認證):寫在這里不太安全,現在都是通過單獨的登錄頁面來完成身份驗證的。

服務器地址+服務器端口:這里的域名也可以是ip地址,后面帶有端口號,瀏覽器就會自動給一個默認的端口。http:80;? ?https:443.

帶有層次的文件地址:這里可能會對應一個真實的硬盤文件,也可能對應一個虛擬的文件。

網絡上的資源位置:1)通過ip地址知道服務器在哪? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2)通過端口號知道程序是哪個? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3)通過路徑知道是訪問哪個資源

查詢字符串:是客戶端給服務器傳遞信息的重要途徑,按照鍵值對的方式來組織的。針對請求的內容做的補充說明。

片段標識符:用來標識當前頁面的某個部分,通過不同的片段標識可以完成網頁內跳轉。

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

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

相關文章

OSPF不規則區域和LSA

OSPF不規則區域 1.遠離骨干的非骨干區域 R1-R4四臺路由器能夠正常學習到彼此路由,但是R5不行,因為R5是非法ABR 解決方法: 1使用Tunnel隧道將AR4連接到骨干區域 (1) 使用隧道解決不規則區域的問題 a.可能造成選路不…

【VS Code】開發C++跳轉配置

C配置c_cpp_properties.json {"env": {"myIncludePath": ["${workspaceFolder}/src/include","${workspaceFolder}/src","${workspaceFolder}","/home/xxx/include/"],"myDefines": ["RELEASE&qu…

Spring AI應用:利用DeepSeek+嵌入模型+Milvus向量數據庫實現檢索增強生成--RAG應用(超詳細)

Spring AI應用:利用DeepSeek嵌入模型Milvus向量數據庫實現檢索增強生成–RAG應用(超詳細) 在當今數字化時代,人工智能(AI)技術的快速發展為各行業帶來了前所未有的機遇。其中,檢索增強生成&…

Spring 的 IoC 和 DI 詳解:從零開始理解與實踐

Spring 的 IoC和 DI 詳解:從零開始理解與實踐 一、IoC(控制反轉) 1、什么是 IoC? IoC 是一種設計思想,它的核心是將對象的創建和管理權從開發者手中轉移到外部容器(如 Spring 容器)。通過這種…

JVM基礎架構:內存模型×Class文件結構×核心原理剖析

🚀前言 “為什么你的Java程序總在半夜OOM崩潰?為什么某些代碼性能突然下降?一切問題的答案都在JVM里! 作為Java開發者,如果你: 對OutOfMemoryError束手無策看不懂GC日志里的神秘數字好奇.class文件如何變…

.DS_Store文件泄露、.git目錄泄露、.svn目錄泄露漏洞利用工具

🐉工具介紹 一款圖形化的 .DS_Store文件泄露、.git目錄泄露、.svn目錄泄露漏洞利用工具。 🎯使用 本工具使用Python3 PyQt5開發,在開始使用前,請確保已經安裝了相關模塊: pip3 install -r requirements.txt -i ht…

為何在 FastAPI 中需要允許跨域訪問(CORS)?(Grok3 回答)

prompt: 你是一個文筆流暢、專業性極強的技術博客博主,你將結合具體的例子和實際代碼解釋寫一篇為何后端選擇fastapi框架時,需要允許跨域訪問。 為何在 FastAPI 中需要允許跨域訪問(CORS)? 在現代 Web 開發中&#xf…

JDK8前后日期(計算兩個日期時間差-高考倒計時)

JDK8之前日期、時間 Date SimpleDateFormat Calender JDK8開始日期、時間 LocalDate/LocalTime/LocalDateTime ZoneId/ZoneDateTIme Instant-時間毫秒值 DateTimeFormatter Duration/Period

Gerapy二次開發:用戶管理專欄主頁面開發

用戶管理專欄主頁面開發 寫在前面用戶權限控制用戶列表接口設計主頁面開發前端account/Index.vuelangs/zh.jsstore.js后端Paginator概述基本用法代碼示例屬性與方法urls.pyviews.py運行效果總結歡迎加入Gerapy二次開發教程專欄! 本專欄專為新手開發者精心策劃了一系列內容,旨…

關于Spring MVC中傳遞數組參數的詳細說明,包括如何通過逗號分隔的字符串自動轉換為數組,以及具體的代碼示例和總結表格

以下是關于Spring MVC中傳遞數組參數的詳細說明,包括如何通過逗號分隔的字符串自動轉換為數組,以及具體的代碼示例和總結表格: 1. 核心機制 Spring MVC支持直接通過逗號分隔的字符串將請求參數自動轉換為數組(String[]、int[]等&…

大模型學習七:?小米8閑置,直接安裝ubuntu,并安裝VNC遠程連接手機,使勁造

一、說明 對于咱們技術人來說,就沒有閑的蛋疼的時候,那不是現在機會來了 二、刷機器準備 1、申請解鎖手機 申請解鎖小米手機https://www.miui.com/unlock/download.html 下載工具,安裝下面的步驟來,官網不欺人吧 打開開發者工…

repo安裝配置

1.安裝屬性 以下配置方式二選一進行安裝 1.1全局級別配置 1. 安裝 repo 工具 在終端中輸入以下命令以下載 repo 工具: curl https://storage.googleapis.com/git-repo-downloads/repo > /usr/bin/repo chmod ax /usr/bin/repo 1.2用戶級別配置 1. 安裝 r…

Go 語言數據類型

Go 語言數據類型 概述 Go 語言(也稱為 Golang)是一種靜態強類型、編譯型、并發型、具有垃圾回收功能的編程語言。自2009年發布以來,Go 語言因其簡潔的語法、高效的執行速度和強大的并發處理能力而廣受歡迎。本文將詳細介紹 Go 語言中的數據類型,幫助讀者更好地理解和掌握…

C# 看門狗策略實現

using System; using System.Threading;public class Watchdog {private Timer _timer;private volatile bool _isTaskAlive;private readonly object _lock new object();private const int CheckInterval 5000; // 5秒檢測一次private const int TimeoutThreshold 10000; …

Font Awesome Web 應用圖標

1. 什么是 Font Awesome Web 應用圖標 Font Awesome Web 應用圖標是 Font Awesome 圖標庫中與 Web 開發相關的子集,適用于界面設計、用戶交互和功能標識。 定義與作用 定義:這些圖標包括導航(如“主頁”)、操作(如“…

如何實現H5端對接釘釘登錄并優雅擴展其他平臺

如何實現H5端對接釘釘登錄并優雅擴展其他平臺 釘釘H5登錄邏輯后端代碼如何實現?本次采用策略模式工廠方式進行定義接口確定會使用的基本鑒權步驟具體邏輯類進行實現采用注冊表模式(Registry Pattern)抽象工廠進行基本邏輯定義具體工廠進行對接…

STM32F103C8T6單片機開發:簡單說說單片機的外部GPIO中斷(標準庫)

目錄 前言 如何使用STM32F1系列的標準庫完成外部中斷的抽象 初始化我們的GPIO為輸入的一個模式 初識GPIO復用,開啟GPIO的復用功能時鐘 GPIO_EXTILineConfig和EXTI_Init配置外部中斷參數 插入一個小知識——如何正確的配置結構體? 初始化中斷&#…

【自然語言處理】深度學習中文本分類實現

文本分類是NLP中最基礎也是應用最廣泛的任務之一,從無用的郵件過濾到情感分析,從新聞分類到智能客服,都離不開高效準確的文本分類技術。本文將帶您全面了解文本分類的技術演進,從傳統機器學習到深度學習,手把手實現一套…

Java Lambda與方法引用:函數式編程的顛覆性實踐

在Java 8引入Lambda表達式和方法引用后,函數式編程范式徹底改變了Java開發者的編碼習慣。本文將通過實戰案例和深度性能分析,揭示如何在新項目中優雅運用這些特性,同時提供傳統代碼與函數式代碼的對比優化方案。 文章目錄 一、Lambda表達式&a…

劍指offer經典題目(三)

目錄 動態規劃入門 二進制運算 鏈表相關 動態規劃入門 題目1:一只青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先后次序不同算 不同的結果)。OJ地址 簡單圖示如下。 題目分析&#…