久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

[免流教程]HTTP協(xié)議詳解

 懵懂丶小青年 2016-12-20
http,?

全稱:超文本傳輸協(xié)議(HyperText Transfer Protocol)
作用:設(shè)計(jì)之初是為了將超文本標(biāo)記語言(HTML)文檔從Web服務(wù)器傳送到客戶端的瀏覽器。現(xiàn)在http的作用已不局限于HTML的傳輸,。
版本:http/1.0 http/1.1* http/2.0
兩篇佳文

輸入網(wǎng)址之后發(fā)生了什么
Web開發(fā)新人培訓(xùn)系列

URL詳解

一個(gè)示例URL

http://www./sj/test;id=8079?name=sviergn&x=true#stuff

Schema: http
host: www.
path: /sj/test
URL params: id=8079
Query String: name=sviergn&x=true
Anchor: stuff
scheme:指定低層使用的協(xié)議(例如:http, https, ftp)
host:HTTP服務(wù)器的IP地址或者域名
port#:HTTP服務(wù)器的默認(rèn)端口是80,,這種情況下端口號(hào)可以省略。如果使用了別的端口,,必須指明,,例如 http://www.:8080/
path:訪問資源的路徑
url-params
query-string:發(fā)送給http服務(wù)器的數(shù)據(jù)
anchor:錨
無狀態(tài)的協(xié)議

http協(xié)議是無狀態(tài)的:

同一個(gè)客戶端的這次請(qǐng)求和上次請(qǐng)求是沒有對(duì)應(yīng)關(guān)系,對(duì)http服務(wù)器來說,,它并不知道這兩個(gè)請(qǐng)求來自同一個(gè)客戶端,。
解決方法:Cookie機(jī)制來維護(hù)狀態(tài)


既然Http協(xié)議是無狀態(tài)的,那么Connection:keep-alive 又是怎樣一回事?

無狀態(tài)是指協(xié)議對(duì)于事務(wù)處理沒有記憶能力,,服務(wù)器不知道客戶端是什么狀態(tài),。從另一方面講,打開一個(gè)服務(wù)器上的網(wǎng)頁和你之前打開這個(gè)服務(wù)器上的網(wǎng)頁之間沒有任何聯(lián)系,。
http消息結(jié)構(gòu)

Request 消息的結(jié)構(gòu):三部分

第一部分叫Request line(請(qǐng)求行),, 第二部分叫http header, 第三部分是body

請(qǐng)求行:包括http請(qǐng)求的種類,請(qǐng)求資源的路徑,,http協(xié)議版本
http header:http頭部信息
body:發(fā)送給服務(wù)器的query信息
當(dāng)使用的是'GET' 方法的時(shí)候,,body是為空的(GET只能讀取服務(wù)器上的信息,post能寫入)

GET /hope/ HTTP/1.1 //---請(qǐng)求行
Host: ce.
Accept: */*
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.6
Cache-Control: max-age=0
Cookie:.........
Referer: http://ce./hope/
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36
---分割線---
POST /hope/ HTTP/1.1 //---請(qǐng)求行
Host: ce.
Accept: */*
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.6
Cache-Control: max-age=0
Cookie:.........
Referer: http://ce./hope/
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36
...body...
Response消息的結(jié)構(gòu)

也分為三部分,,第一部分叫request line, 第二部分叫request header,,第三部分是body

request line:協(xié)議版本、狀態(tài)碼,、message
request header:request頭信息
body:返回的請(qǐng)求資源主體


HTTP/1.1 200 OK
Accept-Ranges: bytes
Content-Encoding: gzip
Content-Length: 4533
Content-Type: text/html
Date: Sun, 06 Sep 2015 07:56:07 GMT
ETag: '2788e6e716e7d01:0'
Last-Modified: Fri, 04 Sep 2015 13:37:55 GMT
Server: Microsoft-IIS/7.5
Vary: Accept-Encoding
X-Powered-By: ASP.NET

...
<>
...
get 和 post 區(qū)別

http協(xié)議定義了很多與服務(wù)器交互的方法,,最基本的有4種,分別是GET,POST,PUT,*,。 一個(gè)URL地址用于描述一個(gè)網(wǎng)絡(luò)上的資源,,而HTTP中的GET, POST, PUT, * 就對(duì)應(yīng)著對(duì)這個(gè)資源的查,改,,增,,刪4個(gè)操作。 我們最常見的就是GET和POST了,。GET一般用于獲取/查詢資源信息,,而POST一般用于更新資源信息.

GET 提交的數(shù)據(jù)會(huì)放在URL之后,以?分割URL和傳輸數(shù)據(jù),,參數(shù)之間以&相連,如EditPosts.aspx?name=test1&id=123456,。POST 方法是把提交的數(shù)據(jù)放在HTTP包的Body中,。

GET 提交的數(shù)據(jù)大小有限制(因?yàn)闉g覽器對(duì)URL的長度有限制),而POST方法提交的數(shù)據(jù)沒有限制.

GET 方式需要使用Request.QueryString 來取得變量的值,,而POST方式通過Request.Form來獲取變量的值,。

GET 方式提交數(shù)據(jù),會(huì)帶來安全問題,,比如一個(gè)登錄頁面,,通過GET方式提交數(shù)據(jù)時(shí),用戶名和密碼將出現(xiàn)在URL上,,如果頁面可以被緩存或者其他人可以訪問這臺(tái)機(jī)器,,就可以從歷史記錄獲得該用戶的賬號(hào)和密碼.

HTTP請(qǐng)求的Get與Post

狀態(tài)碼

Response 消息中的第一行叫做狀態(tài)行,由HTTP協(xié)議版本號(hào), 狀態(tài)碼,, 狀態(tài)消息 三部分組成,。

狀態(tài)碼用來告訴HTTP客戶端,HTTP服務(wù)器是否產(chǎn)生了預(yù)期的Response.

HTTP/1.1中定義了 5 類狀態(tài)碼,。

狀態(tài)碼由三位數(shù)字組成,,第一個(gè)數(shù)字定義了響應(yīng)的類別

1XX 提示信息 - 表示請(qǐng)求已被成功接收,繼續(xù)處理
2XX 成功 - 表示請(qǐng)求已被成功接收,,理解,,接受
3XX 重定向 - 要完成請(qǐng)求必須進(jìn)行更進(jìn)一步的處理
4XX 客戶端錯(cuò)誤 - 請(qǐng)求有語法錯(cuò)誤或請(qǐng)求無法實(shí)現(xiàn)
5XX 服務(wù)器端錯(cuò)誤 - 服務(wù)器未能實(shí)現(xiàn)合法的請(qǐng)求

200 OK
請(qǐng)求被成功地完成,所請(qǐng)求的資源發(fā)送回客戶端
302 Found
重定向,,新的URL會(huì)在response中的Location中返回,,瀏覽器將會(huì)使用新的URL發(fā)出新的Request
304 Not Modified
文檔已經(jīng)被緩存,直接從緩存調(diào)用
400 Bad Request
客戶端請(qǐng)求與語法錯(cuò)誤,,不能被服務(wù)器所理解
403 Forbidden
服務(wù)器收到請(qǐng)求,,但是拒絕提供服務(wù)
404 Not Found
請(qǐng)求資源不存在
500 Internal Server Error
服務(wù)器發(fā)生了不可預(yù)期的錯(cuò)誤
503 Server Unavailable
服務(wù)器當(dāng)前不能處理客戶端的請(qǐng)求,一段時(shí)間后可能恢復(fù)正常
http reauest header

http 請(qǐng)求頭包括很多鍵值對(duì),,這些鍵值對(duì)有什么意義與作用,?如何根據(jù)功能為他們分一下組呢?

cache 頭域

If-Modified-Since
用法:If-Modified-Since: Thu, 09 Feb 2012 09:07:57 GMT

把瀏覽器端緩存頁面的最后修改時(shí)間發(fā)送到服務(wù)器去,,服務(wù)器會(huì)把這個(gè)時(shí)間與服務(wù)器上實(shí)際文件的最后修改時(shí)間進(jìn)行對(duì)比,。如果時(shí)間一致,那么返回304,,客戶端就直接使用本地緩存文件,。如果時(shí)間不一致,就會(huì)返回200和新的文件內(nèi)容,??蛻舳私拥街螅瑫?huì)丟棄舊文件,,把新文件緩存起來,,并顯示在瀏覽器中。


If-None-Match
用法:If-None-Match: '03f2b33c0bfcc1:0'

If-None-Match和ETag一起工作,,工作原理是在HTTP Response中添加ETag信息,。 當(dāng)用戶再次請(qǐng)求該資源時(shí),將在HTTP Request 中加入If-None-Match信息(ETag的值),。如果服務(wù)器驗(yàn)證資源的ETag沒有改變(該資源沒有更新),,將返回一個(gè)304狀態(tài)告訴客戶端使用本地緩存文件。否則將返回200狀態(tài)和新的資源和Etag. 使用這樣的機(jī)制將提高網(wǎng)站的性能


Pragma:Pragma: no-cache
Pargma只有一個(gè)用法,, 例如: Pragma: no-cache

作用: 防止頁面被緩存,, 在HTTP/1.1版本中,,它和Cache-Control:no-cache作用一模一樣


Cache-Control
用法:

Cache-Control:Public 可以被任何緩存所緩存()
Cache-Control:Private 內(nèi)容只緩存到私有緩存中
Cache-Control:no-cache 所有內(nèi)容都不會(huì)被緩存
作用:用來指定Response-Request遵循的緩存機(jī)制

Client 頭域

Accept
用法:Accept: */*,Accept: text/html

作用: 瀏覽器端可以接受的媒體類型,;
Accept: */* 代表瀏覽器可以處理所有回發(fā)的類型,,(一般瀏覽器發(fā)給服務(wù)器都是發(fā)這個(gè))
Accept: text/html 代表瀏覽器可以接受服務(wù)器回發(fā)的類型為 text/html ;如果服務(wù)器無法返回text/html類型的數(shù)據(jù),,服務(wù)器應(yīng)該返回一個(gè)406錯(cuò)誤(non acceptable)


Accept-Encoding
用法:Accept-Encoding: gzip, deflate

作用: 瀏覽器申明自己接收的文件編碼方法,,通常指定壓縮方法,是否支持壓縮,,支持什么壓縮方法(gzip,,deflate),(注意:這不是指字符編碼)


Accept-Language
用法:Accept-Language: en-us

作用: 瀏覽器申明自己接收的語言,。

語言跟字符集的區(qū)別:中文是語言,,中文有多種字符集,比如big5,,gb2312,,gbk等等;


User-Agent
用法: User-Agent: Mozilla/4.0......

作用:告訴HTTP服務(wù)器,, 客戶端使用的操作系統(tǒng)和瀏覽器的名稱和版本.


Accept-Charset
用法:Accept-Charset:utf-8

作用:瀏覽器申明自己接收的字符集,,這就是本文前面介紹的各種字符集和字符編碼,如gb2312,,utf-8(通常我們說Charset包括了相應(yīng)的字符編碼方案)


Cookie/Login 頭域

Cookie

Cookie: bdshare_firstime=1439081296143; ASP.NET_SessionId=rcqayd4ufldcke0wkbm1vhxb; pgv_pvi=7361416192; pgv_si=s6686106624; ce.80.ASPXAUTH=9E099592DD5A414BEECD8CF43CFC71664
作用: 最重要的header, 將cookie的值發(fā)送給HTTP 服務(wù)器

Entity 頭域

Content-Length
用法:Content-Length: 38

作用:發(fā)送給HTTP服務(wù)器數(shù)據(jù)的長度,。


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

不常出現(xiàn),一般出現(xiàn)在response頭部,,用于指定數(shù)據(jù)文件類型


Miscellaneous 頭域

Referer
用法:Referer: http://ce./hope/

作用:提供了Request的上下文信息的服務(wù)器,,告訴服務(wù)器我是從哪個(gè)鏈接過來的,比如從我主頁上鏈接到一個(gè)朋友那里,,他的服務(wù)器就能夠從HTTP Referer中統(tǒng)計(jì)出每天有多少用戶點(diǎn)擊我主頁上的鏈接訪問他的網(wǎng)站,。


Transport 頭域

Connection
Connection: keep-alive: 當(dāng)一個(gè)網(wǎng)頁打開完成后,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接不會(huì)關(guān)閉,,如果客戶端再次訪問這個(gè)服務(wù)器上的網(wǎng)頁,,會(huì)繼續(xù)使用這一條已經(jīng)建立的連接

Connection: close: 代表一個(gè)Request完成后,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接會(huì)關(guān)閉,, 當(dāng)客戶端再次發(fā)送Request,,需要重新建立TCP連接


Host
用法:Host: ce.

作用: 請(qǐng)求報(bào)頭域主要用于指定被請(qǐng)求資源的Internet主機(jī)和端口號(hào)(默認(rèn)80),,它通常從HTTP URL中提取出來的

HTTP Response header

Cache 頭域

Date
用法:Date: Sat, 11 Feb 2012 11:35:14 GMT

作用: 生成消息的具體時(shí)間和日期


Expires
用法:Expires: Tue, 08 Feb 2022 11:35:14 GMT
作用: 瀏覽器會(huì)在指定過期時(shí)間內(nèi)使用本地緩存

Vary
用法:Vary: Accept-Encoding

Cookie/Login 頭域

P3P
用法:
P3P: CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR

作用: 用于跨域設(shè)置Cookie, 這樣可以解決iframe跨域訪問cookie的問題


Set-Cookie
用法:
Set-Cookie: sc=4c31523a; path=/; domain=.acookie.taobao.com

作用:非常重要的header, 用于把cookie 發(fā)送到客戶端瀏覽器,, 每一個(gè)寫入cookie都會(huì)生成一個(gè)Set-Cookie.

Entity 頭域

ETag
用法:ETag: '03f2b33c0bfcc1:0'

作用: 和request header的If-None-Match 配合使用


Last-Modified
用法:Last-Modified: Wed, 21 Dec 2011 09:09:10 GMT

作用:用于指示資源的最后修改日期和時(shí)間。(實(shí)例請(qǐng)看上節(jié)的If-Modified-Since的實(shí)例)


Content-Type
用法:

Content-Type: text/html; charset=utf-8
Content-Type:text/html;charset=GB2312
Content-Type: image/jpeg
作用:WEB服務(wù)器告訴瀏覽器自己響應(yīng)的對(duì)象的類型和字符集


Content-Encoding
用法:Content-Encoding:gzip

作用:WEB服務(wù)器表明自己使用了什么壓縮方法(gzip,,deflate)壓縮響應(yīng)中的對(duì)象,。


Content-Language
用法: Content-Language:da

WEB服務(wù)器告訴瀏覽器自己響應(yīng)的對(duì)象的語言

Miscellaneous 頭域

Server
用法:Server: Microsoft-IIS/7.5

作用:指明HTTP服務(wù)器的軟件信息


X-AspNet-Version
用法:X-AspNet-Version: 4.0.30319

作用:如果網(wǎng)站是用ASP.NET開發(fā)的,,這個(gè)header用來表示ASP.NET的版本

X-Powered-By
用法:X-Powered-By: ASP.NET

作用:表示網(wǎng)站是用什么技術(shù)開發(fā)的

Transport頭域

Connection
用法與作用:
Connection: keep-alive:當(dāng)一個(gè)網(wǎng)頁打開完成后,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接不會(huì)關(guān)閉,,如果客戶端再次訪問這個(gè)服務(wù)器上的網(wǎng)頁,,會(huì)繼續(xù)使用這一條已經(jīng)建立的連接
Connection: close:代表一個(gè)Request完成后,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接會(huì)關(guān)閉,, 當(dāng)客戶端再次發(fā)送Request,,需要重新建立TCP連接
Location頭域

Location
用法:Location:http://ce./hope/
作用: 用于重定向一個(gè)新的位置, 包含新的URL地址

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多