中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

重慶南川網(wǎng)站制作公司哪家專業(yè)sem搜索引擎營(yíng)銷

重慶南川網(wǎng)站制作公司哪家專業(yè),sem搜索引擎營(yíng)銷,php做網(wǎng)站需要啥技術(shù),花生殼可以用來(lái)做網(wǎng)站嗎首先,前端請(qǐng)求后端數(shù)據(jù),后端響應(yīng)數(shù)據(jù)給前端,這是我們大家都知道的,那其中所涉及到的數(shù)據(jù)傳輸協(xié)議又是什么呢?這個(gè)傳輸規(guī)范就是我們大名鼎鼎的HTTP協(xié)議! 什么是HTTP協(xié)議? HTTP(超文本…

首先,前端請(qǐng)求后端數(shù)據(jù),后端響應(yīng)數(shù)據(jù)給前端,這是我們大家都知道的,那其中所涉及到的數(shù)據(jù)傳輸協(xié)議又是什么呢?這個(gè)傳輸規(guī)范就是我們大名鼎鼎的HTTP協(xié)議!

什么是HTTP協(xié)議?

HTTP(超文本傳輸協(xié)議)是一種用于在計(jì)算機(jī)網(wǎng)絡(luò)上發(fā)送和接收超文本資源的應(yīng)用層協(xié)議。它是在Web應(yīng)用程序之間傳輸數(shù)據(jù)的一種規(guī)范。HTTP的設(shè)計(jì)目的是實(shí)現(xiàn)客戶端和服務(wù)器之間的通信和數(shù)據(jù)交換。

HTTP協(xié)議使用簡(jiǎn)單的請(qǐng)求-響應(yīng)模型來(lái)傳輸數(shù)據(jù)??蛻舳税l(fā)送HTTP請(qǐng)求到服務(wù)器,服務(wù)器根據(jù)請(qǐng)求作出相應(yīng)并返回HTTP響應(yīng)。請(qǐng)求和響應(yīng)的內(nèi)容可以是文本、HTML、XML、JSON等格式的數(shù)據(jù)。

HTTP協(xié)議的特點(diǎn)包括:

1. 無(wú)連接:每個(gè)請(qǐng)求-響應(yīng)交互都是獨(dú)立的,服務(wù)器不會(huì)保持與客戶端之間的持久連接。每個(gè)請(qǐng)求都需要建立一個(gè)新的連接。這使得HTTP協(xié)議具有輕量級(jí)和靈活性,但也會(huì)增加一些額外的開(kāi)銷。

2. 無(wú)狀態(tài):HTTP協(xié)議是無(wú)狀態(tài)的,服務(wù)器不會(huì)記錄之前的通信狀態(tài)。每個(gè)請(qǐng)求都是相互獨(dú)立的,服務(wù)器無(wú)法感知到之前的請(qǐng)求。這要求服務(wù)端在處理請(qǐng)求時(shí),對(duì)前后請(qǐng)求之間的上下文和狀態(tài)進(jìn)行管理。

3. 可擴(kuò)展:HTTP協(xié)議支持開(kāi)發(fā)者擴(kuò)展協(xié)議功能。通過(guò)使用頭部字段來(lái)傳遞各種參數(shù)和元數(shù)據(jù),開(kāi)發(fā)者可以自定義和擴(kuò)展協(xié)議的行為。

先來(lái)一個(gè)簡(jiǎn)單的示例,創(chuàng)建springboot工程之后,加入以下代碼片段:

@RestController
public class SpringbootFirstTest {//設(shè)置請(qǐng)求的地址@RequestMapping("/helloTest")public String getAddress(){System.out.println("hello world!");return "hello world!";}
}

說(shuō)明:

@RestController= @Controller + @ResponseBody

@ResponseBody注解是作用于類的返回對(duì)象
????????● 類型:屬于方法注解、類注解
????????● 位置:書寫在Controller方法上或類上
????????● 作用:將方法返回值直接響應(yīng)給瀏覽器,且如果返回值類型是實(shí)體對(duì)象/集合,將會(huì)轉(zhuǎn)換為JSON格式后在響應(yīng)給瀏覽器?,所以這里特別注意如果返回值不是實(shí)體類對(duì)象/集合的話,是不會(huì)轉(zhuǎn)換成json格式的!

Springboot的服務(wù)啟動(dòng)之后,我們來(lái)到瀏覽器找到本地8080端口下,對(duì)請(qǐng)求路徑發(fā)起請(qǐng)求得到如下的圖?

@RestController
public class SpringbootFirstTest {//設(shè)置請(qǐng)求的地址@RequestMapping("/helloTest")public Set<Object> getAddress(){System.out.println("hello world!");Set<Object> set = new HashSet<>();set.add(1);set.add(2);set.add(3);return set;}
}

這里我的瀏覽器安裝了對(duì)應(yīng)的json格式解析插件?

HTTP協(xié)議又分為:請(qǐng)求協(xié)議和響應(yīng)協(xié)議
● 請(qǐng)求協(xié)議:瀏覽器將數(shù)據(jù)以請(qǐng)求格式發(fā)送到服務(wù)器
????????● 包括:**請(qǐng)求行**、**請(qǐng)求頭** 、**請(qǐng)求體**
● 響應(yīng)協(xié)議:服務(wù)器將數(shù)據(jù)以響應(yīng)格式返回給瀏覽器
????????● 包括:**響應(yīng)行** 、**響應(yīng)頭** 、**響應(yīng)體**?

打開(kāi)開(kāi)發(fā)者工具(右鍵檢查或則F12快捷鍵),每點(diǎn)擊一次刷新,瀏覽器都會(huì)重新發(fā)起一個(gè)網(wǎng)絡(luò)請(qǐng)求,框起來(lái)的部分即就是我們HTTP的固定格式,可以看出http無(wú)論是請(qǐng)求還是響應(yīng)都是以Key、Value的形式進(jìn)行展示

先看常規(guī):

這里邊需要關(guān)注的是請(qǐng)求的網(wǎng)址、方法、狀態(tài)代碼,請(qǐng)求的網(wǎng)址在前后端開(kāi)發(fā)的時(shí)候必須遵守,要不然找不到對(duì)應(yīng)的資源;方法即代表當(dāng)前所請(qǐng)求的類型,待會(huì)兒會(huì)著重梳理一下,這里有一個(gè)非常重要的知識(shí)——狀態(tài)碼,狀態(tài)碼是鑒別本次請(qǐng)求響應(yīng),返回結(jié)果的一種體現(xiàn):

狀態(tài)碼說(shuō)明
1xx信息性狀態(tài)碼,表示請(qǐng)求被接收并繼續(xù)處理。
2xx成功狀態(tài)碼,表示請(qǐng)求被成功接收、理解和處理。
3xx重定向狀態(tài)碼,表示資源位置發(fā)生變化,需要進(jìn)一步處理。
4xx客戶端錯(cuò)誤狀態(tài)碼,表示請(qǐng)求包含錯(cuò)誤或無(wú)法完成請(qǐng)求。
5xx服務(wù)器錯(cuò)誤狀態(tài)碼,表示服務(wù)器無(wú)法完成合法請(qǐng)求。

瀏覽器向服務(wù)器發(fā)起請(qǐng)求:

可以看到,在請(qǐng)求行中,有一個(gè)GET,而他代表的就是瀏覽器所發(fā)起請(qǐng)求的方式,那么請(qǐng)求方式有哪些呢?

請(qǐng)求方式????????請(qǐng)求說(shuō)明
GET????????獲取資源:向特定的資源發(fā)起請(qǐng)求
POST傳輸實(shí)體主體:向指定資源提交數(shù)據(jù)進(jìn)行處理請(qǐng)求,常見(jiàn)的就是上傳的操作,數(shù)據(jù)被包含在請(qǐng)求體中
PUTPUT方法用來(lái)傳輸文件。類似FTP協(xié)議,文件內(nèi)容包含在請(qǐng)求報(bào)文的實(shí)體中,然后請(qǐng)求保存到URL指定的服務(wù)器位置。
DELETE刪除文件:請(qǐng)求服務(wù)器刪除Request-URL所標(biāo)識(shí)的資源
CONNECT用求用隧道協(xié)議連接代理,HTTP/1.1協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器
OPTIONS返回服務(wù)器針對(duì)特定資源所支持的HTTP請(qǐng)求方式。因?yàn)椴⒉皇撬械姆?wù)器都支持規(guī)定的方法,為了安全有些服務(wù)器可能會(huì)禁止掉一些方法,例如:DELETE、PUT等。那么OPTIONS就是用來(lái)詢問(wèn)服務(wù)器支持的方法。
HEADHEAD方法類似GET方法,但是不同的是HEAD方法不要求返回?cái)?shù)據(jù)。通常用于確認(rèn)URI的有效性及資源更新時(shí)間等。

請(qǐng)求的常用配置詳解:

請(qǐng)求行:

????????HTTP請(qǐng)求中的第一行數(shù)據(jù)。由: 請(qǐng)求方式 、 資源路徑 、 協(xié)議/版本 組成(之間使用空格分隔)
● 請(qǐng)求方式:GET
● 資源路徑:/brand/findAll?name=OPPO&status=1
● 請(qǐng)求路徑:/brand/findAll
● 請(qǐng)求參數(shù):name=OPPO&status=1
● 請(qǐng)求參數(shù)是以key=value形式出現(xiàn)
● 多個(gè)請(qǐng)求參數(shù)之間使用 & 連接
● 請(qǐng)求路徑和請(qǐng)求參數(shù)之間使用 ? 連接
● 協(xié)議/版本:HTTP/1.1

請(qǐng)求頭:

1. Accept:指定客戶端可接受的媒體類型,可以用來(lái)告訴服務(wù)器返回特定類型的內(nèi)容。例如:Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp

2. Content-Type:指定請(qǐng)求體(Request Body)的媒體類型。常見(jiàn)的有 application/json、application/x-www-form-urlencoded、multipart/form-data等。

例如:Content-Type: application/json,這里在Springboot工程中,如果不確定是否使用@Requstbody注解,通常項(xiàng)目開(kāi)發(fā)中會(huì)約定數(shù)據(jù)的傳輸格式,如果不確定是否使用json時(shí),可以根據(jù)網(wǎng)絡(luò)請(qǐng)求體的媒體類型來(lái)決定要不要將json數(shù)據(jù)封裝成為對(duì)象。如果盲目使用@Requstbody可能會(huì)造成以下的異常:

HttpMessageNotReadableException: Required request body is missing

3. User-Agent:標(biāo)識(shí)發(fā)起請(qǐng)求的客戶端應(yīng)用程序的軟件和版本信息。通常用于統(tǒng)計(jì)和識(shí)別用戶代理。例如:User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36

4. Authorization:用于在請(qǐng)求中發(fā)送認(rèn)證憑據(jù),通常用于身份驗(yàn)證。例如:Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

5. Cookie:用于在請(qǐng)求中發(fā)送存儲(chǔ)在客戶端的 Cookie 數(shù)據(jù)。例如:Cookie: sessionId=abc123; userId=12345

6. Referer:指定請(qǐng)求的來(lái)源頁(yè)面的 URL,用于一些安全策略和數(shù)據(jù)分析。例如:Referer: https://www.example.com/page1.html

7. Cache-Control:指定緩存機(jī)制和緩存策略。例如:Cache-Control: no-cache

8. If-None-Match:用于實(shí)現(xiàn)緩存驗(yàn)證機(jī)制,服務(wù)器會(huì)根據(jù)請(qǐng)求頭中的 ETag 值判斷資源是否需要重新發(fā)送。例如:If-None-Match: "686897696a7c876b7e"

9.?Accept-Encoding: 支持的壓縮類型,如:gzip, deflate, br?

10.sec-fetch/ch- ?代表

sec-ch-ua:瀏覽器信息

sec-ch-ua-mobile:是否為移動(dòng)設(shè)備

sec-ch-ua-platform:平臺(tái)

sec-fetch-dest:表示請(qǐng)求的目的,期望需要什么樣的資源

sec-fetch-mode:表明了一個(gè)請(qǐng)求的模式

????????request:一個(gè)瀏覽器的頁(yè)面切換請(qǐng)求

????????navigate:僅在瀏覽器切換頁(yè)面時(shí)創(chuàng)建,該請(qǐng)求應(yīng)該返回HTML

sec-getch-site:一個(gè)請(qǐng)求發(fā)起者的來(lái)源與目標(biāo)資源之間的關(guān)系,如果用戶直接觸發(fā)頁(yè)面導(dǎo)航,例如在瀏覽器地址中輸入地址,點(diǎn)擊書簽跳轉(zhuǎn)等,就會(huì)設(shè)置為none

sec-getc-user:取值是一個(gè)Boolean類型的值

? ? ? ? true(?1):表示導(dǎo)航請(qǐng)求由用戶激活觸發(fā)(鼠標(biāo)點(diǎn)擊/鍵盤)

? ? ? ? false(?0):表示導(dǎo)航請(qǐng)求由用戶激活以外的原因觸發(fā)

upgrade-Insecure-requests:升級(jí)不安全的連接

? ? ? ? 在https頁(yè)面中,如果調(diào)用了http資源,那么瀏覽器就會(huì)拋出以下錯(cuò)誤,為了改變這一狀況,chrome(谷歌瀏覽器)會(huì)在http請(qǐng)求中加入‘Upgrade-Insecure-requests:1’,服務(wù)器收到請(qǐng)求后會(huì)返回 "Content-Security-Policy: upgrade-insecure-requests" 頭,告訴瀏覽器,可以把所屬本站的所有http 連接升級(jí)為 https 連接

服務(wù)器向?yàn)g覽器響應(yīng)數(shù)據(jù):

?響應(yīng)常用配置詳解:

響應(yīng)行:

請(qǐng)求行(以上圖中紅色部分):包含請(qǐng)求方式、資源路徑、協(xié)議/版本
● 請(qǐng)求方式:POST
● 資源路徑:/brand
● 協(xié)議/版本:HTTP/1.1

?響應(yīng)頭:

1. Content-Type:指定響應(yīng)體(Response Body)的媒體類型。常見(jiàn)的有 text/html、application/json、image/jpeg 等。例如:Content-Type: application/json

2. Content-Length:指定響應(yīng)體的內(nèi)容長(zhǎng)度,以字節(jié)為單位。例如:Content-Length: 1024

3. Cache-Control:指定緩存機(jī)制和緩存策略??梢钥刂瓶蛻舳撕椭虚g緩存服務(wù)器對(duì)響應(yīng)內(nèi)容進(jìn)行緩存的方式。例如:Cache-Control: max-age=3600, public

4. Expires:指定響應(yīng)的過(guò)期時(shí)間,告訴客戶端該資源的有效期截止時(shí)間。例如:Expires: Wed, 01 Feb 2024 12:00:00 GMT

5. Last-Modified:指定響應(yīng)資源的最后修改時(shí)間,用于實(shí)現(xiàn)緩存驗(yàn)證機(jī)制。例如:Last-Modified: Fri, 24 Jan 2024 10:00:00 GMT

6. ETag:指定響應(yīng)資源的唯一標(biāo)識(shí)符,也用于實(shí)現(xiàn)緩存驗(yàn)證機(jī)制。例如:ETag: "686897696a7c876b7e"

7. Set-Cookie:用于在響應(yīng)中設(shè)置客戶端的 Cookie 數(shù)據(jù)。例如:Set-Cookie: sessionId=abc123; Max-Age=3600; Path=/

8. Access-Control-Allow-Origin:用于允許跨域訪問(wèn)的源,設(shè)置為 * 表示允許所有域名跨域。例如:Access-Control-Allow-Origin: *

兩者有什么區(qū)別?

區(qū)別方式?GET請(qǐng)求POST請(qǐng)求
請(qǐng)求參數(shù)GET的請(qǐng)求參數(shù)在請(qǐng)求行中就有所體現(xiàn),在上邊請(qǐng)求配置詳解中有提到,例:/brand/findAll?
name=OPPO&status=1
請(qǐng)求參數(shù)在請(qǐng)求體中
請(qǐng)求長(zhǎng)度請(qǐng)求參數(shù)長(zhǎng)度有限制(瀏覽器不同限制也不同)請(qǐng)求參數(shù)長(zhǎng)度沒(méi)有限制
安全性安全性低。原因:請(qǐng)求參數(shù)暴露在瀏覽器地址欄中。安全性相對(duì)高

http://m.risenshineclean.com/news/31943.html

相關(guān)文章:

  • 網(wǎng)站推廣的8種方法東莞網(wǎng)絡(luò)推廣代運(yùn)營(yíng)
  • 站外調(diào)用WordPress評(píng)論網(wǎng)絡(luò)營(yíng)銷策略案例分析
  • 網(wǎng)站建設(shè)技術(shù)支持牛商網(wǎng)kol營(yíng)銷
  • 青島網(wǎng)站設(shè)計(jì)微動(dòng)力百家號(hào)推廣團(tuán)隊(duì)
  • 蘋果手機(jī)允許網(wǎng)站設(shè)置百度廣告聯(lián)盟app下載官網(wǎng)
  • 有什么軟件做短視頻網(wǎng)站免費(fèi)網(wǎng)站生成器
  • 掃描二維碼進(jìn)入公司網(wǎng)站怎樣做原創(chuàng)文章代寫平臺(tái)
  • 申請(qǐng)微官網(wǎng)的網(wǎng)站百度關(guān)鍵詞首頁(yè)排名怎么上
  • asp做網(wǎng)站搜索免費(fèi)seo教程分享
  • phpcmsv9手機(jī)網(wǎng)站模板建設(shè)網(wǎng)站的步驟
  • 西安建委官網(wǎng)太原seo網(wǎng)站優(yōu)化
  • 龍溪營(yíng)銷型網(wǎng)站制作好123上網(wǎng)主頁(yè)
  • 微網(wǎng)站怎么做的好網(wǎng)站優(yōu)化推廣公司
  • 做海報(bào)可以在哪些網(wǎng)站下載素材萊陽(yáng)seo外包
  • 廣東品牌網(wǎng)站設(shè)計(jì)專家百度云網(wǎng)盤網(wǎng)頁(yè)版
  • 設(shè)計(jì)大神云集的網(wǎng)站是網(wǎng)絡(luò)推廣方法怎么樣
  • 怎樣增加網(wǎng)站收錄量谷歌瀏覽器引擎入口
  • 展示類網(wǎng)站建設(shè)qianhu微建站
  • 點(diǎn)網(wǎng)站出圖片怎么做網(wǎng)站開(kāi)發(fā)培訓(xùn)
  • 沈陽(yáng)網(wǎng)站建設(shè)培訓(xùn)學(xué)校怎么建網(wǎng)站教程圖解
  • 大型網(wǎng)站seo方案長(zhǎng)沙網(wǎng)站推廣seo
  • 百度上做網(wǎng)站免費(fèi)嗎品牌運(yùn)營(yíng)策劃方案
  • 邢臺(tái)人才網(wǎng)官網(wǎng)首頁(yè)下載優(yōu)化大師
  • dw網(wǎng)站建設(shè)流程游戲搜索風(fēng)云榜
  • dreamwave cs6建設(shè)php網(wǎng)站十大成功營(yíng)銷策劃案例
  • 保定網(wǎng)站排名優(yōu)化直通車關(guān)鍵詞優(yōu)化
  • wordpress 送錢啦濟(jì)南網(wǎng)站優(yōu)化排名推廣
  • 鹽城做百度網(wǎng)站百度推廣服務(wù)費(fèi)3000元
  • 哪里有網(wǎng)站開(kāi)發(fā)設(shè)計(jì)文章優(yōu)化關(guān)鍵詞排名
  • 做好網(wǎng)站建設(shè)通知seo行業(yè)崗位