真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

好程序員web前端教程JavaScript系列之HTTP-創(chuàng)新互聯(lián)

  好程序員 web 前端教程 JavaScript 系列之 HTTP : http   是我們前后臺(tái)交互的時(shí)候的傳輸協(xié)議(即超文本傳輸協(xié)議)

10年積累的做網(wǎng)站、網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有察哈爾右翼中旗免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

HTTP 的工作流程

00001.  和服務(wù)器建立鏈接

00002.  建立鏈接后,發(fā)送一個(gè)請(qǐng)求給服務(wù)器(請(qǐng)求)

00003.  服務(wù)器接受到請(qǐng)求以后進(jìn)行相應(yīng)的處理并給出一個(gè)回應(yīng)(響應(yīng))

00004.  斷開于服務(wù)器的鏈接

和服務(wù)器建立鏈接

·  怎么和服務(wù)器建立鏈接呢?

·  需要保證客戶端的接受和發(fā)送正常,服務(wù)器端的接受和發(fā)送正常

·  這里就涉及到一個(gè)東西叫做  TCP/IP  協(xié)議

·  建立鏈接的主要步驟叫做  三次握手

1、客戶端發(fā)送一個(gè)消息給到服務(wù)端

此時(shí): 服務(wù)端知道了 客戶端可以正常發(fā)送消息 服務(wù)端知道了 服務(wù)端可以正常接受消息

2、服務(wù)端回給客戶端一個(gè)消息

此時(shí):

  服務(wù)端知道了 客戶端可以正常發(fā)送消息

  服務(wù)端知道了 服務(wù)端可以正常接受消息

  客戶端知道了 客戶端可以正常發(fā)送消息

  客戶端知道了 客戶端可以正常接受消息

  客戶端知道了 服務(wù)端可以正常接受消息

  客戶端知道了 服務(wù)端可以正常發(fā)送消息

3、客戶端再回給服務(wù)端一個(gè)消息

此時(shí):

  服務(wù)端知道了 客戶端可以正常發(fā)送消息

  服務(wù)端知道了 服務(wù)端可以正常接受消息

  客戶端知道了 客戶端可以正常發(fā)送消息

  客戶端知道了 客戶端可以正常接受消息

  客戶端知道了 服務(wù)端可以正常接受消息

  客戶端知道了 服務(wù)端可以正常發(fā)送消息

  服務(wù)端知道了 服務(wù)端可以正常發(fā)送消息

  服務(wù)端知道了 客戶端可以正常接受消息

·  至此,依照  TCP/IP  協(xié)議的建立鏈接就建立好了

·  雙方都知道雙方可以正常收發(fā)消息

·  就可以進(jìn)入到第二步,通訊了

發(fā)送一個(gè)請(qǐng)求

·  建立完鏈接以后就是發(fā)送請(qǐng)求的過程

·  我們的每一個(gè)請(qǐng)求都要把我們的所有信息都包含請(qǐng)求

·  每一個(gè)請(qǐng)求都會(huì)有一個(gè)  請(qǐng)求報(bào)文

·  在  請(qǐng)求報(bào)文  中會(huì)包含我們所有的請(qǐng)求信息(也就是我們要和服務(wù)端說的話都在里面)

·  我們的請(qǐng)求報(bào)文中會(huì)包含幾個(gè)東西

1、請(qǐng)求行

POST /user HTTP/1.1

# POST 請(qǐng)求方式

# /user 請(qǐng)求URL(不包含域名)

# HTTP/1.1 請(qǐng)求協(xié)議版本

2、請(qǐng)求頭(請(qǐng)求頭都是鍵值對(duì)的形式出現(xiàn)的)

user-agent : Mozilla /5 . 0  # 產(chǎn)生請(qǐng)求的瀏覽器信息 accept : application / json  # 表示客戶端希望接受的數(shù)據(jù)類型 Content-Type : application / x-www-form-urlencoded  # 客戶端發(fā)送的實(shí)體數(shù)據(jù)格式 Host : 127 . 0 . 0 . 1  # 請(qǐng)求的主機(jī)名( IP

3、請(qǐng)求空行(請(qǐng)求頭和請(qǐng)求主體之間要留一個(gè)空白行)

# 就是一個(gè)空行

4、請(qǐng)求體(本次請(qǐng)求攜帶的數(shù)據(jù))

# GET 請(qǐng)求是沒有請(qǐng)求體數(shù)據(jù)的

# POST 請(qǐng)求才有請(qǐng)求體數(shù)據(jù)

·  接下來看一個(gè)完整的請(qǐng)求報(bào)文

POST /user HTTP/1.1      # 請(qǐng)求行

Host: www.user.com

Content-Type: application/x-www-form-urlencoded

accept: application/json

User-agent: Mozilla/5.0.     # 以上是首部

#(此處必須有一空行)  # 空行分割header和請(qǐng)求內(nèi)容

name=world   # 請(qǐng)求體

接受一個(gè)響應(yīng)

·  客戶端的請(qǐng)求發(fā)送到服務(wù)端以后

·  服務(wù)端進(jìn)行對(duì)應(yīng)的處理

·  會(huì)給我們返回一個(gè)響應(yīng)

·  每一個(gè)響應(yīng)都會(huì)有一個(gè)  響應(yīng)報(bào)文

·  在  響應(yīng)報(bào)文  中會(huì)包含我們所有的響應(yīng)信息(也就是服務(wù)端在接受到客戶端請(qǐng)求以后,給我們的回信)

·  我們的  響應(yīng)報(bào)文  中會(huì)包含幾個(gè)信息

1、狀態(tài)行

HTTP/1.1 200 OK # HTTP/1.1 服務(wù)器使用的 HTTP 協(xié)議版本 # 200 響應(yīng)狀態(tài)碼 # OK 對(duì)響應(yīng)狀態(tài)碼的簡(jiǎn)單解釋

2、響應(yīng)頭

Date: Jan, 14 Aug 2019 12:42:30 GMT # 服務(wù)器時(shí)間 Server: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45 # 服務(wù)器類型 Content-Type: text/html # 服務(wù)端給客戶端的數(shù)據(jù)類型 Content-Length: 11 # 服務(wù)端給客戶端的數(shù)據(jù)長(zhǎng)度

3、響應(yīng)體

hello world # 服務(wù)端給客戶端的響應(yīng)數(shù)據(jù)

斷開于服務(wù)端的鏈接

·  之前我們的建立鏈接是基于  TCP/IP  協(xié)議的  三次握手

·  我們的斷開鏈接是基于  TCP/IP  協(xié)議的  四次揮手

00001.  客戶端發(fā)送一個(gè)我要斷開的消息給服務(wù)端

00002.  服務(wù)端接受到以后發(fā)送一個(gè)消息告訴客戶端我已經(jīng)進(jìn)入關(guān)閉等待狀態(tài)

00003.  服務(wù)端再次發(fā)送一個(gè)消息告訴客戶端,這個(gè)是我的最后一次消息給你,當(dāng)我再接受到消息的時(shí)候就會(huì)關(guān)閉

00004.  客戶端接受到服務(wù)端的消息以后,告訴服務(wù)器,我已經(jīng)關(guān)閉,這個(gè)是給你的最后一個(gè)消息

完成一個(gè) HTTP 請(qǐng)求

·  至此,一個(gè) HTTP 請(qǐng)求就完整的完成了

·  一個(gè) HTTP 請(qǐng)求必須要包含的四個(gè)步驟就是

00001.  建立鏈接

00002.  發(fā)送請(qǐng)求

00003.  接受響應(yīng)

00004.  斷開鏈接

·  在一個(gè) HTTP 請(qǐng)求中,請(qǐng)求的部分有請(qǐng)求報(bào)文,接受響應(yīng)的部分有響應(yīng)報(bào)文

·  請(qǐng)求報(bào)文包含

00001.  請(qǐng)求行

00002.  請(qǐng)求頭

00003.  請(qǐng)求空行

00004.  請(qǐng)求體

·  響應(yīng)報(bào)文

00001.  狀態(tài)行

00002.  響應(yīng)頭

00003.  響應(yīng)體

常見的 HTTP 響應(yīng)狀態(tài)碼

·  在一個(gè) HTTP 請(qǐng)求的響應(yīng)報(bào)文中的狀態(tài)行會(huì)有一個(gè)響應(yīng)狀態(tài)碼

·  這個(gè)狀態(tài)碼是用來描述本次響應(yīng)的狀態(tài)的

·  通常會(huì)出現(xiàn)五種狀態(tài)碼

00001.  100 ~ 199

00002.  200 ~ 299

00003.  300 ~ 399

00004.  400 ~ 499

00005.  500 ~ 599

100 ~ 199

·  一般我們看不到,因?yàn)楸硎菊?qǐng)求繼續(xù)

·  100: 繼續(xù)請(qǐng)求,前面的一部分內(nèi)容服務(wù)端已經(jīng)接受到了,正在等待后續(xù)內(nèi)容

·  101: 請(qǐng)求者已經(jīng)準(zhǔn)備切換協(xié)議,服務(wù)器頁(yè)表示同意

200 ~ 299

·  2 開頭的都是表示成功,本次請(qǐng)求成功了,只不過不一樣的狀態(tài)碼有不一樣的含義(語(yǔ)義化)

·  200: 標(biāo)準(zhǔn)請(qǐng)求成功(一般表示服務(wù)端提供的是網(wǎng)頁(yè))

·  201: 創(chuàng)建成功(一般是注冊(cè)的時(shí)候,表示新用戶信息已經(jīng)添加到數(shù)據(jù)庫(kù))

·  203: 表示服務(wù)器已經(jīng)成功處理了請(qǐng)求,但是返回的信息可能來自另一源

·  204: 服務(wù)端已經(jīng)成功處理了請(qǐng)求,但是沒有任何數(shù)據(jù)返回

300 ~ 399

·  3 開頭也是成功的一種,但是一般表示重定向

·  301: 永久重定向

·  302: 臨時(shí)重定向

·  304: 使用的是緩存的數(shù)據(jù)

·  305: 使用代理

400 ~ 499

·  4 開頭表示客戶端出現(xiàn)錯(cuò)誤了

·  400: 請(qǐng)求的語(yǔ)法服務(wù)端不認(rèn)識(shí)

·  401: 未授權(quán)(你要登錄的網(wǎng)站需要授權(quán)登錄)

·  403: 服務(wù)器拒絕了你的請(qǐng)求

·  404: 服務(wù)器找不到你請(qǐng)求的 URL

·  407: 你的代理沒有授權(quán)

·  408: 請(qǐng)求超時(shí)

·  410: 你請(qǐng)求的數(shù)據(jù)已經(jīng)被服務(wù)端永久刪除

500 ~ 599

·  5 開頭的表示服務(wù)端出現(xiàn)了錯(cuò)誤

·  500: 服務(wù)器內(nèi)部錯(cuò)誤

·  503: 服務(wù)器當(dāng)前不可用(過載或者維護(hù))

·  505: 請(qǐng)求的協(xié)議服務(wù)器不支持

常見的 HTTP 請(qǐng)求方式

·  每一個(gè) HTTP 請(qǐng)求在請(qǐng)求行里面會(huì)有一個(gè)東西叫做請(qǐng)求方式

·  不同的請(qǐng)求方式代表的含義不同

00001.  GET: 一般用于獲取一些信息使用(獲取列表)

00002.  POST: 一般用于發(fā)送一些數(shù)據(jù)給服務(wù)端(登錄)

00003.  PUT: 一般用于發(fā)送一些數(shù)據(jù)給服務(wù)當(dāng)讓其添加新數(shù)據(jù)(注冊(cè))

00004.  DELETE: 一般用域刪除某些數(shù)據(jù)

00005.  HEAD: 類似于 GET 的請(qǐng)求,只不過一般沒有響應(yīng)的具體內(nèi)容,用于獲取報(bào)文頭

00006.  CONNECT: HTTP/1.1 中預(yù)留的方式,一般用于管道鏈接改變?yōu)榇淼臅r(shí)候使用

00007.  PATCH: 是和 PUT 方式類似的一個(gè)方式,一般用于更新局部數(shù)據(jù)

00008.  OPTIONS: 允許客戶端查看服務(wù)端性能

·  我們比較常用的就是 GET 和 POST

GET 請(qǐng)求

·  參數(shù)以  querystring  的形式發(fā)送,也就是直接拼接在 請(qǐng)求路徑的后面

·  GET 請(qǐng)求會(huì)被瀏覽器主動(dòng)緩存

·  GET 請(qǐng)求根據(jù)不同的瀏覽器對(duì)長(zhǎng)度是有限制的

·  IE: 2083 個(gè)字符

·  FireFox: 65536 個(gè)字符

·  Safari: 80000 個(gè)字符

·  Opera: 190000 個(gè)字符

·  Chrome: 8182 個(gè)字符

·  APACHE(server): 理論上接受的大長(zhǎng)度是 8192 個(gè)字符(有待商榷)

·  對(duì)參數(shù)的類型有限制,只接受 ASCII 碼的格式

·  GET 請(qǐng)求是明文發(fā)送,相對(duì)不安全

POST 請(qǐng)求

·  參數(shù)以  request body 的形式發(fā)送,也就是放在請(qǐng)求體中

·  POST 請(qǐng)求不會(huì)被瀏覽器主動(dòng)緩存,除非手動(dòng)設(shè)置

·  POST 請(qǐng)求理論上是沒有限制的,除非服務(wù)端做了限制

·  對(duì)參數(shù)類型沒有限制,理論上可以傳遞任意數(shù)據(jù)類型,只不過要和請(qǐng)求頭對(duì)應(yīng)

·  POST 請(qǐng)求是密文發(fā)送,相對(duì)安全


網(wǎng)頁(yè)名稱:好程序員web前端教程JavaScript系列之HTTP-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://weahome.cn/article/echhc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部