あなたは、HTTPプロトコルを知っている必要があります!!!

I.はじめに

  • HTTP(ハイパーテキスト転送プロトコル)、ファイル転送プロトコルスーパー即ちそのアプリケーション層、TCP / IPデータ伝送、クライアントとサーバの所定の通信フォーマットを完了するためにベースのプロトコル。
  1. -に基づいてモード「の要求に応じて、」
    クライアントを開始する要求は、サーバーが要求を受信すると、サーバが応答します。
  2. 接続がありません
    一つだけの要求を処理し、各接続。リクエストを処理した後、すぐに待機時間があるでしょう、切断されていません。
  3. いかなる状態の保存は
    リクエストとレスポンスの間の通信の状態を保存しません。

II。要求のプロセスフロー

ここに画像を挿入説明

  1. ブラウザ経由(//www.muzi.cn:HTTPなど)、開始された要求(1-2間に隠さ:IPアドレスにDNSドメイン名)ユーザーがURLを入力してください。
  2. ブラウザは、WebサーバへのTCP接続要求を開始し、の対応するIPアドレスを見つけます。
  3. サーバーは接続を確立するためにTCP 3ウェイハンドシェイクを通じて、要求を受け付けた後、
  4. ブラウザは、HTTP形式にパッケージ化されたデータパケットを要求します。
  5. ブラウザが要求パケットを送信します。
  6. HTTPサーバは、データパケットフォーマットを解析し、
  7. 対応するアプリケーションを実行します。
  8. パケットHTTP形式にパック(HTMLのような画像であってもよい)応答結果。
  9. データパケットは、ネットワーク経由でブラウザに送信します。
  10. HTTPブラウザは、(HTMLデータを仮定して)パケットフォーマットを解析します。
  11. ブラウザはユーザーにHTMLレスポンスをレンダリングします。

三。HTTPリクエストメソッド

  1. 8つのメソッドが
    GETPOST、HEAD、TRACE、OPTIONS、CONNECTを、DELETE、PUT

  2. GETとPOSTは、
    「機能」
    (1)主な機能をGET:
    必要なサーバリソースからユーザーを取得し、クライアントへの応答のバックとして。
    ⚠️は、リソースへのアクセスである、それはリソースを変更することはできません。
    ⚠️GETまた、サーバーにリソースをアップロードすることができますが、一般的に推奨されていないが。
    (2)POSTの主な機能:
    サーバからリソースを取得することしかできませんが、あなたはまた、サーバーにリソースをアップロードすることができます。

    「アップロードリソースの比較では、」
    サーバ・リソースにアップロードするには、GETメソッドを使用する場合(1)、一般的なデータをURLに付加して使用される「?」「&」ため、URLの長さの制限の個々の変数との間の接続、そうで接続この方法を使用してアップロードデータは、通常1024バイトについて、非常に小さい、
    通信データのPOSTメソッドを添付HTTP要求によって、より大量のデータが転送され、一般的に限定されるものではなく、行われます。
    アップロードデータのGETメソッドは、データが「露出」されるように、URLに付加されているため(2)、セキュリティ上のリスクが存在する。POSTので、より高いセキュリティ。

四。HTTPステータスコード

  1. 主要なカテゴリ
    ここに画像を挿入説明
  2. 細別
    ここに画像を挿入説明

V.パケット組成

ここに画像を挿入説明

  1. 要求パケットの
    ここに画像を挿入説明
    要求ライン:リクエストメソッド、リクエストURL(ドメイン名が含まれていない)、HTTPプロトコルバージョン、
    リクエストヘッダ:キー/値のペア、ラインごとに一組
    のブランク行は:もはや通知サーバリクエストヘッダが存在しない
    リクエストボディ:GET POSTが、データを要求しませんでした。要求データに関連付けられた、リクエストヘッダは、最も一般的にContent-TypeとContent-Lengthを使用しています。
    ここに画像を挿入説明

  2. 応答メッセージ
    ここに画像を挿入説明

     <status-line>   //状态行
     
     <headers>   //消息报头
     
     <blank line>   //空行
     
     <response-body>    //响应体	
    

ここに画像を挿入説明
3. リクエストヘッダ

    Accept:指定客户端能够接收的内容类型。
	
	Accept-Charset:浏览器可以接受的字符编码集。
	
	Accept-Encoding:指定浏览器可以支持的web服务器返回内容压缩编码类型。
	
	Accept-Language:浏览器可接受的语言。
	
	Accept-Ranges:可以请求网页实体的一个或者多个子范围字段。
	
	AuthorizationHTTP:授权的授权证书。
	
	Cache-Control:指定请求和响应遵循的缓存机制。
	
	Connection:表示是否需要持久连接。(HTTP 1.1默认进行持久连接)
	
	CookieHTTP:请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。
	
	Content-Length:请求的内容长度。
	
	Content-Type:请求的与实体对应的MIME信息。
	
	Date:请求发送的日期和时间。
	
	Expect:请求的特定的服务器行为。
	
	From:发出请求的用户的Email。
	
	Host:指定请求的服务器的域名和端口号。
	
	If-Match:只有请求内容与实体相匹配才有效。
	
	If-Modified-Since:如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码。
	
	If-None-Match:如果内容未改变返回304代码,参数为服务器先前发送的Etag,与服务器回应的Etag比较判断是否改变。
	
	If-Range:如果实体未改变,服务器发送客户端丢失的部分,否则发送整个实体。
	
	If-Unmodified-Since:只在实体在指定时间之后未被修改才请求成功。
	
	Max-Forwards:限制信息通过代理和网关传送的时间。
	
	Pragma:用来包含实现特定的指令。
	
	Proxy-Authorization:连接到代理的授权证书。
	
	Range:只请求实体的一部分,指定范围。
	
	Referer:先前网页的地址,当前请求网页紧随其后,即来路。
	
	TE:客户端愿意接受的传输编码,并通知服务器接受接受尾加头信息。
	
	Upgrade:向服务器指定某种传输协议以便服务器进行转换(如果支持。
	
	User-AgentUser-Agent:的内容包含发出请求的用户信息。
	
	Via:通知中间网关或代理服务器地址,通信协议。
	
	Warning:关于消息实体的警告信息

  1. レスポンスヘッダ
	Accept-Ranges:表明服务器是否支持指定范围请求及哪种类型的分段请求。
	
	Age:从原始服务器到代理缓存形成的估算时间(以秒计,非负)。
	
	Allow:对某网络资源的有效的请求行为,不允许则返回405。
	
	Cache-Control:告诉所有的缓存机制是否可以缓存及哪种类型。
	
	Content-Encodingweb:服务器支持的返回内容压缩编码类型。。
	
	Content-Language:响应体的语言。
	
	Content-Length:响应体的长度。
	
	Content-Location:请求资源可替代的备用的另一地址。
	
	Content-MD5:返回资源的MD5校验值。
	
	Content-Range:在整个返回体中本部分的字节位置。
	
	Content-Type:返回内容的MIME类型。
	
	Date:原始服务器消息发出的时间。
	
	ETag:请求变量的实体标签的当前值。
	
	Expires:响应过期的日期和时间。
	
	Last-Modified:请求资源的最后修改时间。
	
	Location:用来重定向接收方到非请求URL的位置来完成请求或标识新的资源。
	
	Pragma:包括实现特定的指令,它可应用到响应链上的任何接收方。
	
	Proxy-Authenticate:它指出认证方案和可应用到代理的该URL上的参数。
	
	refresh:应用于重定向或一个新的资源被创造,在5秒之后重定向(由网景提出,被大部分浏览器支持)
	
	Retry-After:如果实体暂时不可取,通知客户端在指定时间之后再次尝试。
	
	Serverweb:服务器软件名称。
	
	Set-Cookie:设置Http Cookie。
	
	Trailer:指出头域在分块传输编码的尾部存在。
	
	Transfer-Encoding:文件传输编码。
	
	Vary:告诉下游代理是使用缓存响应还是从原始服务器请求。
	
	Via:告知代理客户端响应是通过哪里发送的。
	
	Warning:警告实体可能存在的问题。
	
	WWW-Authenticate:表明客户端请求实体应该使用的授权方案。
公開された70元の記事 ウォンの賞賛4 ビュー6384

おすすめ

転載: blog.csdn.net/qq_44837912/article/details/104323934