欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:前端網(wǎng)絡(luò)請求

柚子快報激活碼778899分享:前端網(wǎng)絡(luò)請求

http://yzkb.51969.com/

HTTP概述

HTTP(超文本傳輸協(xié)議,HyperText Transfer Protocol)是一種用于分布式、協(xié)作式、超媒體信息系統(tǒng)的應(yīng)用層協(xié)議。HTTP 是萬維網(wǎng)(WWW)的數(shù)據(jù)通信的基礎(chǔ),設(shè)計目的是確??蛻舳伺c服務(wù)器之間的通信,是互聯(lián)網(wǎng)上最常用的協(xié)議之一。HTTP 是一個基于 TCP/IP 通信協(xié)議來傳遞數(shù)據(jù)的(HTML 文件、圖片文件、查詢結(jié)果等)。設(shè)計 HTTP 最初的目的是為了提供一種發(fā)布和接收 HTML 頁面的方法,通過 HTTP 或者 HTTPS 協(xié)議請求的資源由統(tǒng)一資源標(biāo)識符(Uniform Resource Identifiers,URI)來標(biāo)識。

HTTP 的基本工作原理是客戶端(通常是 web 瀏覽器)向服務(wù)器發(fā)送請求,服務(wù)器接收到請求后,返回相應(yīng)的資源。這些資源可以是網(wǎng)頁、圖像、音頻文件、視頻等。

HTTP 使用了客戶端-服務(wù)器模型(client-server),其中客戶端發(fā)送請求,服務(wù)器返回響應(yīng)。

HTTP/HTTPS

HTTP 本身是不安全的,因為傳輸?shù)臄?shù)據(jù)未經(jīng)加密,可能會被竊聽或篡改,為了解決這個問題,引入了 HTTPS,即在 HTTP 上加入 SSL/TLS 協(xié)議,為數(shù)據(jù)傳輸提供了加密和身份驗證。

資源和URI

HTTP 請求的內(nèi)容通稱為"資源"。”資源“這一概念非常寬泛,它可以是一份文檔,一張圖片,或所有其他你能夠想到的格式。每個資源都由一個 (URI) 來進行標(biāo)識。

URI(統(tǒng)一資源標(biāo)識符)是一個指向資源的字符串。最通常用在 URL 上來指定 Web 上資源文件的具體位置。相比之下,URN 是在給定的命名空間用名字指向具體的資源。 一般情況下,資源的名稱和位置由同一個 URL(統(tǒng)一資源定位符,它是 URI 的一種)來標(biāo)識。

URI 的最常見形式是統(tǒng)一資源定位符 (URL),它也被稱為 Web 地址。

https://www.bing.com https://github.com https://www.nenu.edu.cn

在瀏覽器的地址欄中輸入上述任一地址,瀏覽器就會加載相應(yīng)的網(wǎng)頁(資源)。

URN 是另一種形式的 URI,它通過特定命名空間中的唯一名稱來標(biāo)識資源。

urn:isbn:9780141036144 urn:ietf:rfc:7230

URL語法

一個URL通常由協(xié)議+主機+端口+路徑+查詢+片段組成

例如:https://www.example.com:80/app/search?content=network

協(xié)議: https 主機: www.example.com 端口: 80 路徑: app/search 查詢: ?content=network

對于查詢一般格式為?key1=value1&key2=value2,其中&是對鍵值對的分割如果訪問的該 Web 服務(wù)器使用 HTTP 協(xié)議的標(biāo)準(zhǔn)端口(HTTP 為 80,HTTPS 為 443)授予對其資源的訪問權(quán)限,則通常省略此部分。

Cookie

HTTP Cookie(也叫 Web Cookie 或瀏覽器 Cookie)是服務(wù)器發(fā)送到用戶瀏覽器并保存在本地的一小塊數(shù)據(jù)。瀏覽器會存儲 cookie 并在下次向同一服務(wù)器再發(fā)起請求時攜帶并發(fā)送到服務(wù)器上。通常,它用于告知服務(wù)端兩個請求是否來自同一瀏覽器——如保持用戶的登錄狀態(tài)。Cookie 使基于無狀態(tài)的 HTTP 協(xié)議記錄穩(wěn)定的狀態(tài)信息成為了可能。

Cookie主要用于以下三個方面: ? 會話狀態(tài)管理(如用戶登錄狀態(tài)、購物車、游戲分?jǐn)?shù)或其它需要記錄的信息) ? 個性化設(shè)置(如用戶自定義設(shè)置、主題等) ? 瀏覽器行為跟蹤(如跟蹤分析用戶行為等)

更多http相關(guān)知識參考MDN

HTTP請求

瀏覽器中輸入url,按下回車,會發(fā)生什么?

DNS域名解析(DNS尋址),找到網(wǎng)頁的存放服務(wù)器。瀏覽器與服務(wù)器建立TCP連接;瀏覽器發(fā)送HTTP請求;服務(wù)器響應(yīng)HTTP請求,返回該頁面的HTML內(nèi)容瀏覽器解析HTML代碼,并請求HTML代碼中的資源(如javascript、css、圖片等)瀏覽器對頁面進行渲染呈現(xiàn)給用戶

請求方法

根據(jù) HTTP 標(biāo)準(zhǔn),HTTP 請求可以使用多種請求方法。 HTTP1.0 定義了三種請求方法: GET, POST 和 HEAD 方法。 HTTP1.1 新增了六種請求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。

方法描述GET用于請求服務(wù)器發(fā)送某個資源。GET 請求不應(yīng)該對服務(wù)器上的資源做出任何更改。POST向指定資源提交數(shù)據(jù)進行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在POST請求體中。POST 請求可能會導(dǎo)致新的資源的建立或已有資源的修改。PUT從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定的文檔的內(nèi)容,即指定上傳資源存放路徑。本質(zhì)上來講, PUT和POST極為相似,都是向服務(wù)器發(fā)送數(shù)據(jù),但它們之間有一個重要區(qū)別,PUT通常指定了資源的存放位置,而POST則沒有,POST的數(shù)據(jù)存放位置由服務(wù)器自己決定。DELETE請求服務(wù)器刪除指定的資源。HEAD類似于 GET 請求,但服務(wù)器不返回請求的資源主體,只返回響應(yīng)頭。HEAD 請求通常用于獲取資源的元信息,如資源的大小、類型等,而不需要獲取資源的實際內(nèi)容。OPTIONS客戶端詢問服務(wù)器可以提交哪些請求方法。它用于獲取當(dāng)前URL所支持的方法。PATCH是對 PUT 方法的補充,用來對已知資源進行局部更新 。TRACE回顯服務(wù)器收到的請求,客戶端可以對請求消息的傳輸路徑進行追蹤,TRACE方法是讓W(xué)eb服務(wù)器端將之前的請求通信還給客戶端的方法。主要用于測試或診斷。CONNECTHTTP/1.1 協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器。CONNECT方法要求在與代理服務(wù)器通信時建立隧道,實現(xiàn)用隧道協(xié)議進行TCP通信。主要使用SSL(安全套接層)和TLS(傳輸層安全)協(xié)議把通信內(nèi)容加密后經(jīng)網(wǎng)絡(luò)隧道傳輸。

最常用的兩種請求方法為GET、POST

HTTP報文

HTTP 報文是在應(yīng)用程序之間發(fā)送的數(shù)據(jù)塊,這些數(shù)據(jù)塊將通過以文本形式的元信息開頭,用于 HTTP 協(xié)議交互。請求端(客戶端)的 HTTP 報文叫做請求報文,響應(yīng)端(服務(wù)器端)的叫做響應(yīng)報文。HTTP 報文本身是由多行數(shù)據(jù)構(gòu)成的字符串文本

請求報文

HTTP 請求報文由請求行、請求頭、空行和請求包體(body)組成。如下圖所示: 示例:

GET / HTTP/1.1

Host: www.baidu.com

Connection: keep-alive

Cache-Control: max-age=0

sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"

sec-ch-ua-mobile: ?0

sec-ch-ua-platform: "macOS"

Upgrade-Insecure-Requests: 1

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9

Sec-Fetch-Site: none

Sec-Fetch-Mode: navigate

Sec-Fetch-User: ?1

Sec-Fetch-Dest: document

Accept-Encoding: gzip, deflate, br

Accept-Language: zh-CN,zh;q=0.9,en;q=0.8

Cookie: BIDUPSID=8B0207CE0B6364E5934651E84F17999B; PSTM=1619707475;

請求行 主要描述了客戶端想要如何操作服務(wù)端的資源;請求行由三部分構(gòu)成:

請求方法:表示對資源期望進行何種操作,常用的如 GET、POST請求目標(biāo):通常是一個 URL ,表明了要操作的資源。版本號:表示報文使用的 HTTP 協(xié)議版本。 這三個部分通常使用空格(space)來分隔,最后要用 CRLF 換行表示結(jié)束。

GET / HTTP/1.1

請求頭 HTTP的報文頭,報文頭包含若干個屬性,格式為“屬性名:屬性值”,服務(wù)端據(jù)此獲取客戶端的信息。與緩存相關(guān)的規(guī)則信息,均包含在 header 中,請求頭可大致分為四種類型:通用首部字段、請求首部字段、響應(yīng)首部字段、實體首部字段。 請求體 請求體就是 HTTP 要傳輸?shù)膬?nèi)容,HTTP 可以承載很多類型的數(shù)字?jǐn)?shù)據(jù):圖片、音頻、視頻、HTML 文檔等。 注意:GET請求不能有請求體,請求的具體信息在url中已經(jīng)給出

響應(yīng)報文

HTTP 響應(yīng)報文由狀態(tài)行、響應(yīng)頭部、空行和響應(yīng)包體(body)組成。如下圖所示:

示例:

HTTP/1.1 200 OK

Bdpagetype: 1

Bdqid: 0xfb0d743100040ad2

Cache-Control: private

Connection: keep-alive

Content-Encoding: gzip

Content-Type: text/html;charset=utf-8

Date: Fri, 24 Dec 2021 08:20:44 GMT

Expires: Fri, 24 Dec 2021 08:20:44 GMT

Server: BWS/1.1

Set-Cookie: BDSVRTM=17; path=/

Set-Cookie: BD_HOME=1; path=/

Set-Cookie: H_PS_PSSID=35635_34439_35104_35628_35488_35436_35456_34584_35491_35584_35586_34873_35317_26350_35610_35562; path=/; domain=.baidu.com

Strict-Transport-Security: max-age=172800

Traceid: 1640334044050133761018090243032019634898

X-Frame-Options: sameorigin

X-Ua-Compatible: IE=Edge,chrome=1

Transfer-Encoding: chunked

狀態(tài)行 狀態(tài)行包含了 協(xié)議版本、狀態(tài)碼以及狀態(tài)描述。

協(xié)議版本:指明了報文使用的 HTTP 協(xié)議版本。狀態(tài)描述:這個是作為狀態(tài)碼的補充,是一段更詳細的文字,幫助人們理解原因。狀態(tài)碼:狀態(tài)碼是一個三位數(shù)字,用來表示處理的結(jié)果,下面列出了狀態(tài)碼的類別: 響應(yīng)頭部 和請求報文的請求頭類似,響應(yīng)頭也由鍵值對組成,每行一對,鍵和值用英文冒號 : 分隔。響應(yīng)頭允許服務(wù)器傳遞不能放在狀態(tài)行的附加信息,這些域主要描述服務(wù)器的信息和 Request-URI 進一步的信息。 響應(yīng)包體 服務(wù)器返回給瀏覽器的響應(yīng)信息,響應(yīng)數(shù)據(jù)的格式是根據(jù)服務(wù)器來的,常見的響應(yīng)數(shù)據(jù)格式有:text/html、application/json 等。

HTTP 首部字段

在 HTTP 的請求頭和響應(yīng)頭中都是由首部字段來表示的,首部內(nèi)容可以為客戶端和服務(wù)器分別處理請求和響應(yīng)提供所需要的信息。

首部字段可以分為通用首部字段、請求首部字段、響應(yīng)首部字段、實體首部字段。

通用首部字段 通用首部字段是指請求報文和響應(yīng)報文都會使用到的首部字段。 請求首部字段 請求首部字段是從客戶端往服務(wù)器端發(fā)送請求報文中所使用的字段,用于補充請求的附加信息、客戶端信息、對響應(yīng)內(nèi)容相關(guān)的優(yōu)先級等內(nèi)容。 響應(yīng)首部字段 響應(yīng)首部字段是由服務(wù)器端向客戶端返回響應(yīng)報文中所使用的字段,用于補充響應(yīng)的附加信息、服務(wù)器信息,以及對客戶端的附加要求等信息。 實體首部字段 實體首部字段是包含在請求報文和響應(yīng)報文中的實體部分所使用的首部,用于補充內(nèi)容的更新時間等與實體相關(guān)的信息。

AJAX

AJAX = Asynchronous JavaScript and XML(異步的 JavaScript 和 XML)。AJAX 不是新的編程語言,而是一種使用現(xiàn)有標(biāo)準(zhǔn)的新方法。AJAX 最大的優(yōu)點是在不重新加載整個頁面的情況下,可以與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁內(nèi)容。AJAX 不需要任何瀏覽器插件,但需要用戶允許 JavaScript 在瀏覽器上執(zhí)行。XMLHttpRequest 只是實現(xiàn) Ajax 的一種方式。

XMLHttpRequest

所有現(xiàn)代瀏覽器均支持 XMLHttpRequest 對象(IE5 和 IE6 使用 ActiveXObject)。

XMLHttpRequest 用于在后臺與服務(wù)器交換數(shù)據(jù)。這意味著可以在不重新加載整個網(wǎng)頁的情況下,對網(wǎng)頁的某部分進行更新。

我們只需要借助XMLHttpRequest對象即可向服務(wù)器發(fā)送請求。

創(chuàng)建XMLHttpRequest對象

let xhr = new XMLHttpRequest();

發(fā)送請求 GET請求

let xhr = new XMLHttpRequest();

xhr.open("GET","http://127.0.0.1:8080/course/getall");

xhr.send();

POST請求

let xhr = new XMLHttpRequest();

let user = '{"username": "user", "password": "123456"}';

xhr.open("POST","http://127.0.0.1:8080/user/login");

xhr.send(user);

響應(yīng) 如需獲得來自服務(wù)器的響應(yīng),請使用 XMLHttpRequest 對象的 responseText 或 responseXML 屬性。 onreadystatechange 當(dāng)請求被發(fā)送后,我們無法知道響應(yīng)什么時候到來,也不知道響應(yīng)的狀態(tài)如何,所以我們就需要用onreadystatechange事件監(jiān)控響應(yīng)的狀態(tài)。

let xhr = new XMLHttpRequest();

xhr.open("GET", "http://127.0.0.1:8080/course/getall");

xhr.send();

xhr.onreadystatechange = ()=>{

if(xhr.readyState == 4 && xhr.status == 200){

document.getElementById('show').innerHTML = xhr.responseText;

}

}

Fetch

Fetch API 是用于進行網(wǎng)絡(luò)請求和響應(yīng)的現(xiàn)代 JavaScript API。它提供了一種更簡潔和強大的方式來處理 HTTP 請求和響應(yīng),我們推薦使用Fetch,而不用原生的XMLHttpRequest。 Fetch API的語法十分簡潔,可以用下面的例子概括:

fetch(url)

.then(response => response.json())

.then(data => console.log(data))

.catch(error => error)

fetch(url,{

method: 'post',

headers: {'Content-Type' : 'application/json'},

body: JSON.stringify(obj)

})

.then(response => response.json())

.then(data => console.log(data))

.catch(error => error)

then.(…)是一種promise的用法,感興趣的可以參考promise

JSON

JavaScript Object Notation(JavaScript 對象表示法)JSON 是輕量級的文本數(shù)據(jù)交換格式JSON 獨立于語言JSON 易于人閱讀和編寫

語法

JSON 語法是 JavaScript 對象表示語法的子集。

數(shù)據(jù)在名稱/值對中數(shù)據(jù)由逗號 , 分隔使用斜桿 \ 來轉(zhuǎn)義字符大括號 {} 保存對象中括號 [] 保存數(shù)組,數(shù)組可以包含多個對象

JSON 的兩種結(jié)構(gòu):

對象:大括號 {} 保存的對象是一個無序的名稱/值對集合。一個對象以左括號 { 開始, 右括號 } 結(jié)束。每個"鍵"后跟一個冒號 :,名稱/值對使用逗號 , 分隔。

{"name" : "alice", "age" : "19"}

數(shù)組:中括號 [] 保存的數(shù)組是值(value)的有序集合。一個數(shù)組以左中括號 [ 開始, 右中括號 ] 結(jié)束,值之間使用逗號 , 分隔。

["baidu", "google", "taobao"]

數(shù)據(jù)類型

數(shù)字(整數(shù)或浮點數(shù))字符串(在雙引號中)邏輯值(true 或 false)數(shù)組(在中括號中)對象(在大括號中)null

{"age" : 19}

{"location" : null}

{"flag" : true}

{

data:[

{"name" : "alice"},

{"name" : "bob"}

]

}

JSON使用

JSON數(shù)據(jù)本質(zhì)上是字符串,但是JavaScript已經(jīng)提供了JSON.parse()和JSON.stringify()函數(shù)可以方便的將JSON數(shù)據(jù)轉(zhuǎn)換為對象和字符串形式。

我們可以像使用js中的對象一樣直接使用JSON對象。

let stu = {

name : "alice",

age : 19

}

let stu_string = JSON.stringify(stu);

console.log(stu_string);

let stu_obj = JSON.parse(stu_string);

console.log(stu_obj);

console.log(stu_obj.name);

console.log(stu_obj.age);

柚子快報激活碼778899分享:前端網(wǎng)絡(luò)請求

http://yzkb.51969.com/

參考文章

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://m.gantiao.com.cn/post/18884412.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄