HTTPプロトコルの基礎とパケットキャプチャ解析

さらに便利なパフォーマンステストは、契約、基本的な知識の理解、機構やプロトコルの深い理解をバイパスすることが不可欠であるときに従事し、あなたはパフォーマンステストの実施に従事することができます。

ここでは、プロトコルおよびパフォーマンステストを共有するために、いくつかの分析ツールをマスターする必要があります。http。

シェアパフォーマンステストの実施プロセスのキーテクノロジーの焦点は、ツールを習得する必要があります。詳細は、関連する書籍やHTTPのRFC文書を参照してください。

HTTP基本アーキテクチャ

ここでは、我々が最初に基本的な理解を持っているように、HTTPプロトコルの基本的な構造を示すために、簡単なフローチャートを使用しています。

Webクライアントは、ツールのhttpリクエストを開始するために、HTTPプロトコルに基づいブラウザ、検索エンジン、ロボット、などすべてのことができます。Webサーバーは、HTTPリクエストのいずれかを解決することができるというように識別することができ、Webクライアントサービスに対応し、共通のApache、nginxの、IIS Webサーバー、およびを返すことがあります。濃度が本質である、最も単純なHTTP相互作用図を見てください:

 

HTTPパケットの構造

要求パケットの要求によってHTTP要求行、要求ヘッダー、要求内容と空白行4部。

下図のように:

次に、簡単な分析を理解します:

リクエストライン

、URLフィールド、プロトコルバージョンフィールドは、スペースを挟んで区切られた三つの部分、要求メソッドフィールドから構成されています。一般的な方法の要求を使用:GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。

リクエストヘッダ

コロンのキーと値との間のリクエストヘッダペア、各動作のための1つの対は、(:)キー/値で除算します。詳細については、クライアントの要求をサーバに通知するための要求のヘッドの主な役割。

典型的なリクエストヘッダは、次のとおり

User-Agent:ブラウザタイプの要求を生成します

受け入れ:クライアントが応答して、コンテンツタイプのリストを識別することができ、パケットタイプによって使用されるアスタリスク*範囲を。* / *タイプ/ *は型タイプのすべてのサブタイプあることを示し、薬学的にすべてのタイプを表します。

受け入れる言語:クライアント許容自然言語

受け入れエンコード:許容可​​能なクライアントの圧縮符号化形式

- 文字セットを受け入れる:許容可能な文字セット

ホスト:リクエストのホスト名、複数のドメイン名が同じIPアドレスをバインドすることができます

connection:连接方式(close或keeplive)

Cookie: 存储在客户端的扩展字段

空行

最后一个请求头之后就是空行,用于告诉服务端以下内容不再是请求头的内容了。

请求内容

请求内容主要用于POST请求,与POST请求方法配套的请求头一般有Content-Type(标识请求内容的类型)和Content-Length(标识请求内容的长度)

响应报文HTTP响应报文由状态行、响应头、空行和响应内容4个部分构成。

如下图所示:

下面对响应报文格式进行简要的分析说明:

状态行

由HTTP协议版本、状态码、状态码描述三部分构成,它们之间由空格隔开。

状态码由3位数字组成,第一位标识响应的类型,常用的5大类状态码如下:

1xx:表示服务器已接收了客户端的请求,客户端可以继续发送请求

2xx:表示服务器已成功接收到请求并进行处理

3xx:表示服务器要求客户端重定向

4xx:表示客户端的请求有非法内容

5xx:标识服务器未能正常处理客户端的请求而出现意外错误

常见状态码说明:

200 OK: 表示客户端请求成功

400 Bad Request: 表示客户端请求有语法错误,不能被服务器端解析

401 Unauthonzed: 表示请求未经授权,该状态码必须与WWW-Authenticate报文头一起使用

404 Not Found:请求的资源不存在,例如输入了错误的url

500 Internal Server Error: 表示服务器发生了不可预期的错误,导致无法完成客户端的请求

503 Service Unavailable:表示服务器当前不能处理客户端的请求,在一段时间后服务器可能恢复正常

响应头

一般情况下,响应头会包含以下,甚至更多的信息。

Location:服务器返回给客户端,用于重定向到新的位置

Server: 包含服务器用来处理请求的软件信息及版本信息

Vary:标识不可缓存的请求头列表

Connection: 连接方式。

对于请求端来讲:close是告诉服务端,断开连接,不用等待后续的求请了。keeplive则是告诉服务端,在完成本次请求的响应后,保持连接,等待本次连接后的后续请求。

对于响应端来讲:close表示连接已经关闭。keeplive则表示连接保持中,可以继续处理后续请求。Keep-Alive表示如果请求端保持连接,则该请求头部信息表明期望服务端保持连接多长时间(秒),例如300秒,应该这样写Keep-Alive: 300

空行

最后一个响应头之后就是空行,用于告诉请求端以下内容不再是响应头的内容了。

响应内容

服务端返回给请求端的文本信息。

https://baijiahao.baidu.com/s?id=1596966404370818881&wfr=spider&for=pc

 

おすすめ

転載: www.cnblogs.com/SRH151219/p/11073395.html