[TOC]
1. 協(xié)議部分:
一般是指URL中第一個(gè)冒號(hào)之前的部分
web系統(tǒng)中常用的協(xié)議有:
- http
- https
- ftp
- smtp
- javascript
- about
- oracle
- mysql
2. 域名:
就是要訪問(wèn)的web服務(wù)器的地址(域名或者IP),屬于必選部分
3. 端口:
是跟在域名之后,格式一般是:
- 域名:端口
- 一般來(lái)說(shuō),web服務(wù)器都會(huì)制定自身提供服務(wù)的端口(監(jiān)聽(tīng)端口)
- 然后用戶(hù)要訪問(wèn)的服務(wù)器,必須是指定對(duì)應(yīng)的端口
- 通常來(lái)說(shuō),常用的協(xié)議都有默認(rèn)的服務(wù)端口,如果服務(wù)器所提供的服務(wù)器端口和協(xié)議的默認(rèn)端口一致的話(huà),則用戶(hù)可以不用輸入端口
- 常用的協(xié)議和端口有:
| 協(xié)議 | 端口 |
|---|---|
| http | 80 |
| https(ssl) | 443 or 8443 |
| ftp | 21 |
| ssh | 22 |
| smtp | 25 |
| pop3 | 110 |
| oracle | 1521 |
| mysql | 3306 |
| sqlserver | 1433 |
- 路徑: path 一般是端口之后的 / 開(kāi)始部分 包含 /
- 一般來(lái)說(shuō),我們?cè)L問(wèn)的服務(wù)器都是服務(wù)器所指定的某一個(gè)文件夾(容器)內(nèi)的資源
- path就是用來(lái)指定訪問(wèn)的資源位于服務(wù)器的容器下的路徑.(從容器開(kāi)始計(jì)算,不包括容器本身的路徑)
- 示例: /phpwind/sercher.php
- 服務(wù)器一般都是有一個(gè)index的設(shè)置,如果訪問(wèn)的服務(wù)器的文件夾,則會(huì)自動(dòng)訪問(wèn)文件夾下的index文件
- url地址參數(shù): 一般是以 ? 拼接在path之后,通常代表使用get方法傳遞給服務(wù)器的數(shù)據(jù).
- url 地址參數(shù)通常是 鍵 值 對(duì)應(yīng)的.即鍵名=鍵值,不通的鍵值之間使用&符號(hào)進(jìn)行拼接
- 屬于可選的部分
- ps:在很多場(chǎng)合,url地址參數(shù)會(huì)被歸結(jié)為path部分
4. 使用的是HTTP協(xié)議
和團(tuán)體票協(xié)議本身是一種基于請(qǐng)求(request)和響應(yīng)(response)的協(xié)議
4.1 http request:
http請(qǐng)求一般是由三個(gè)部分構(gòu)成:
- request line
- request header
- request body
4.2 http 詳細(xì):
一般是指request包中第一行內(nèi)容.通常包含以下信息:
-
request method: 請(qǐng)求方法常用 get post put delete trace head options等,get post 最常用
- 示例: GET /phpwind/HTTP/ 1.1
- 默認(rèn)請(qǐng)求是 GET
- 在GET方法提交的數(shù)據(jù)通常是一URL地址參數(shù)的方式進(jìn)行拼裝
- 在POST方法提交的數(shù)據(jù)是以 request body的方式進(jìn)行拼裝
- 在瀏覽器層面,對(duì)于URL地址的長(zhǎng)度是有限制的(http沒(méi)有),因?yàn)榇笮蛿?shù)據(jù)是使用post方法傳遞
- GET方法會(huì)在瀏覽器進(jìn)行緩存,POST是沒(méi)有在瀏覽器緩存(這才是為什么POST比GET更安全的原因)
- POST對(duì)于數(shù)據(jù)類(lèi)型的支持比較GET更好.
- 示例: GET /phpwind/HTTP/ 1.1
request path
protocol/version
-
request header: 請(qǐng)求頭,一般是指第二行開(kāi)始到第一個(gè)空行結(jié)束的部分.主要是為了完成通信的控制
- 請(qǐng)求頭 一般都是鍵值對(duì)應(yīng)的,格式為: 請(qǐng)求頭名稱(chēng): 請(qǐng)求頭的值
- 請(qǐng)求頭的名稱(chēng)(類(lèi)型)都是有http協(xié)議提前約定好的,具有特定的通信效果的,一般不能自定義
- 從性能測(cè)試角度,建議指定的信息頭有:
- Accept: 用來(lái)告知服務(wù)器,客戶(hù)端希望接收的數(shù)據(jù)類(lèi)型
- User-Agent: 用來(lái)告知服務(wù)器,客戶(hù)端的一些環(huán)境配置信息.主要會(huì)影響到兼容性操作,session的建立等.
- Accept-Encoding: 告知服務(wù)器,本地是否支持解壓縮,支持的解壓縮類(lèi)型有哪些.
- Content-Type: 如果request body中有內(nèi)容,則需要使用該信息頭指定內(nèi)容的數(shù)據(jù)類(lèi)型(告知服務(wù)器)
-
request body: 請(qǐng)求主題.是指第一個(gè)空行之后的內(nèi)容
- 比如說(shuō) get方法, request body是空的
- post方法 會(huì)產(chǎn)生鍵值對(duì)的內(nèi)容
-
http response: http響應(yīng), 通常也是由三個(gè)部分構(gòu)成: response line, response header, response body
- response line: 響應(yīng)行,通常就是響應(yīng)數(shù)據(jù)包中第一行,通常包含以下信息:protocol/version,response code,response message
- 示例: HTTP/1.1 200 OK
- response code: 響應(yīng)代碼,又叫狀態(tài)碼,通常是用來(lái)標(biāo)識(shí)服務(wù)器對(duì)于請(qǐng)求的處理狀態(tài)(邏輯狀態(tài)),和業(yè)務(wù)狀態(tài)無(wú)關(guān)
- 一般來(lái)說(shuō),狀態(tài)碼通常都是三位長(zhǎng)度的十進(jìn)制數(shù)字,一般都是通過(guò)首字母實(shí)現(xiàn)大的類(lèi)型的區(qū)分
- 1xx: 通常用來(lái)傳遞信息
- 2xx: 典型的就是200,一般表示服務(wù)器對(duì)于請(qǐng)求進(jìn)行了處理.表示正確
ps:在性能測(cè)試過(guò)程中,一定要注意的就是邏輯狀態(tài)是進(jìn)本要求,同事要進(jìn)行業(yè)務(wù)的校驗(yàn) - 3xx: 一般來(lái)說(shuō)就是從定向
- 一般就是301~303 307表示和url地址有關(guān)的重定向
- 304~306表示和緩存有關(guān)的重定向
- 4xx: 一般表示處理錯(cuò)誤,
- 403: 權(quán)限
- 404: 要訪問(wèn)的資源不存在
- 5xx: 一般表示服務(wù)器錯(cuò)誤
- 500: 服務(wù)器問(wèn)題,或者是我們請(qǐng)求有錯(cuò)誤
response message: 響應(yīng)信息,是用來(lái)描述響應(yīng)代碼的.本身沒(méi)有什么意義,可以自定義,最好自己攔截 4xx 5xx,自定義返回的錯(cuò)誤
-
response header: 響應(yīng)頭
- 格式 類(lèi)似于 request header
- 請(qǐng)求頭是客戶(hù)端提交給服務(wù)器的
- 響應(yīng)頭是服務(wù)器返回給客戶(hù)端的控制信息
response body: 響應(yīng)主題,即服務(wù)器最終返回給客戶(hù)端的資源信息(字節(jié)信息)