あなたは、HTTPプロトコルを理解する必要があります

HTTPプロトコルを理解します

HTTP(ハイパーテキスト転送プロトコル、ハイパーテキスト転送プロトコル)は、分散、協調アプリケーション層プロトコルとハイパーメディア情報システムです。HTTPは、データ通信基地ウェブです。

一般的に、HTTPクライアント(例:ブラウザ)が指定されたポート(デフォルトポート80)TCP接続を作成するには、サーバーへのGET要求を開始します。HTTPサーバは、クライアントがポートをリスニングすることを要求します。要求を受信すると、サーバは、「HTTP / 1.1 200 OK」と、返されたコンテンツ、ファイル、そのような要求、または他の情報のようなエラーメッセージとして、クライアントにステータスを返します。

リクエストメソッド

HTTP / 1.1プロトコルは、異なる方法指定されたリソースに、8つのメソッドが定義されてCCP

  • 取得する
    • サーバー(1以上)からリソースを削除します。
  • 役職
    • (例えば、フォームを送信したり、ファイルをアップロードする)、リソース、要求を処理するためのサーバーを指定するには、データを提出してください。ここの要求に含まれるデータ。この要求は、新しいリソースを作成したり、既存のリソースを変更、またはその両方があり
  • プット
    • サーバーに(クライアントが提供する完全なリソースを変更した後)リソースを更新します。
  • DELETE
    • サーバーからリソースを削除します。
  • パッチ
    • サーバ内の(プロパティを変更するには、クライアントによって提供される)を更新リソース。
    • Request-URIヘッダで識別されるリソースに応答メッセージを要求します
  • OPTIONS
    • リクエストクエリのパフォーマンスサーバ、または他の関連リソースのニーズとオプション
  • トレース
    • サーバーエコー要求情報を受信した要求は、主に検査や診断に使用します
  • CONNECT
    • HTTP / 1.1プロトコルは、プロキシサーバのパイプラインモードへの接続のために予約することができます。一般的にSSL暗号化サーバ(暗号化されていないHTTPプロキシサーバを経由して)リンクするために使用

HTTPリクエスト

Requestパケット・フォーマット

送信された要求情報には、以下の4つの部分を含みます

  1. リクエストライン
  2. リクエストヘッダ
  3. 空行
  4. その他のメッセージ本文
# 请求格式
1 动词 路径 协议/版本   GET /Search HTTP/1.1
2 Key1: value1
2 Key2: value2
2 Key3: value3
2 Content-Type: application/x-www-form-urlencoded
2 Host: www.baidu.com
2 User-Agent: curl/7.54.0
3 
4 要上传的数据 
## GET请求的报文格式
GET /pay?test=aaaa HTTP/1.1
Host: localhost:8088
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36
Accept: */*
Referer: http://localhost:8088/
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7

## POST 请求的报文格式
POST /pay?test=aaaa HTTP/1.1
Host: localhost:8088
Connection: keep-alive
Content-Length: 0
Origin: http://localhost:8088
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36
Accept: */*
Referer: http://localhost:8088/
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7

注意を払います

  1. アップ要求は、次の4つの部分、三つの部分の最小値を含んでいます。(すなわち、第4の部分は空であってもよいです)
  2. 第3の部分は、常にキャリッジリターンであります\n
  3. 動詞GET POST PUT PATCH DELETE HEAD OPTIONS、など
  4. ここでは、パス「クエリパラメータ」を含むが「アンカー」が含まれていません。
  5. あなたはパス、パスのデフォルト値を記述する必要がない場合 /
  6. パート2 Content-Typeラベルフォーマットパート4
  7. HTTP/1.1プロトコル、すべての要求ヘッダー(パート2)、外部ホストを除き、任意です

ChromeブラウザでHTTPリクエストを表示する方法

  1. 押してF12か、右検査要素に开发者工具
  2. Networkパネル
  3. URLアドレスバーを入力します。
  4. Networkクリックし、ビューRequest Headers、デフォルトのツールは、あなたがよく解決するのに役立つ「ソースの表示」をクリックする必要があり、元の要求フォーマットを表示することができます
  5. 要求の第4の部分がある場合、それは内部いるFormData又は要求ペイロードに見ることができます

HTTPレスポンス

要求メッセージを受信し、解釈した後、サーバは、HTTPレスポンスメッセージを返します。

応答メッセージ・フォーマット

HTTP応答は、すなわち、4つの部分から構成されています。

  1. ステートライン
  2. メッセージヘッダ
  3. 空行
  4. レスポンスボディ
1 协议/版本号 状态码 状态解释   HTTP/1.1 200 OK
2 Key1: value1
2 Key2: value2
2 Content-Length: 17931
2 Content-Type: text/html
3
4 响应的内容
## GET 请求的响应报文
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: Keep-Alive
Content-Length: 2443
Content-Type: text/html

<!DOCTYPE html>
<html> <head> 后面太长,省略了……

## POST请求的响应报文
HTTP/1.1 200 OK
Date: Tue, 11 Jun 2019 07:22:56 GMT
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: Keep-Alive
Transfer-Encoding: chunked

xxxxName.call(undefined, {"success": true, "remain": 35})

状態コードインタプリタ

  • 1XXメッセージ - 要求を受信したサーバ、処理が続行
  • 2xxの成功 - サーバ要求は理解し、正常に受信され、受け入れられています
  • 3XXリダイレクション - 次のステップは、この要求を完了する必要があります
  • リクエストに4xxエラー - 要求は、字句エラーを含むか、実行することはできません
  • 5xxのサーバーエラー - リクエストを適切に処理中にサーバーエラーが発生しました
200 请求成功
201 服务器创建了新的资源
202 已接受,服务器已接受请求,但尚未处理
204 服务器成功处理了请求,但是没有返回任何东西

301 永久移动), 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置
302 临时移动) ,服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
304 资源未修改, 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。
400 错误请求,服务器不理解请求的语法
401 没有权限,请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
403 禁止访问,服务器拒绝请求
404 资源未找到
405 HTTP请求方法被禁用
408 请求超时
412 请求实体过大
500 服务器内部错误
502 错误网关
503 服务不可用
504 网关超时

ChromeでHTTPレスポンスを表示する方法

そして、同様の要求フォーマットを表示

おすすめ

転載: www.cnblogs.com/wubh/p/you_need_know_about_http.html