RESTful http の詳細な紹介

Jul 24, 2017 pm 02:20 PM
http restful 説明する

HTTP (HyperText Transfer Protocol) は、コンピューターがネットワーク経由で通信するための一連のルールです。コンピュータの専門家は、HTTP クライアント (Web ブラウザなど) が HTTP サーバー (Web サーバー) に情報やサービスを要求できるようにするために HTTP を設計しました。HTTP プロトコルの現在のバージョンは 1.1 であり、ステートレスとは Web を指します。ブラウザと Web サーバーの間に永続的な接続を確立する必要はありません。これは、クライアントがサーバーにリクエストを送信し、Web サーバーが応答を返すと、接続が閉じられ、接続に関する情報がサーバー上に保持されないことを意味します。 Information.HTTP はリクエスト/レスポンス モデルに従います。 Web ブラウザは Web サーバーにリクエストを送信し、Web サーバーはリクエストを処理して適切な応答を返します。すべての HTTP 接続は、リクエストと応答のセットとして構造化されています。
HTTP はコンテンツ タイプを使用します。これは、Web サーバーから Web ブラウザに返されるファイルには関連するタイプがあることを意味します。これらのタイプはすべて、MIME インターネット メール プロトコルに基づいてモデル化されています。つまり、Web サーバーは、ファイルが HTML ドキュメント、GIF 画像、サウンド ファイル、またはスタンドアロン アプリケーションであるかどうか、ファイルの種類を Web ブラウザに伝えます。 。ほとんどの Web ブラウザには、Web サーバーから送信されたさまざまなコンテンツ タイプを処理する方法をブラウザに指示する、一連の構成可能なヘルパー アプリケーションがあります。
HTTP 通信メカニズムでは、完全な HTTP 通信プロセス中に、Web ブラウザと Web サーバーの間で次の 7 つのステップが完了します:
(1) TCP 接続を確立します
HTTP 作業が開始される前に、Web ブラウザはまず、ネットワークを介して Web サーバーとの接続を確立するには、TCP を介して接続が完了します。このプロトコルと IP プロトコルは、有名な TCP/IP プロトコル ファミリであるインターネットを共同で構築するため、インターネットは TCP/IP ネットワークとも呼ばれます。 。 HTTP は TCP よりも上位のアプリケーション層プロトコルであり、規則に従って、下位層のプロトコルが確立されて初めて上位層のプロトコルに接続できるようになります。そのため、通常は最初に TCP 接続を確立する必要があります。 TCP接続の数は80です
(2) WebブラウザはWebサーバーにリクエストコマンドを送信します
TCP接続が確立されると、WebブラウザはWebサーバーにリクエストコマンドを送信します
例: GET /sample/hello.jsp HTTP/1.1
(3) Web ブラウジング ブラウザはリクエストヘッダ情報を送信します
ブラウザはリクエストコマンドを送信した後、その他の情報もヘッダ情報の形で Web サーバーに送信します。その後、ブラウザはヘッダ情報の送信が終了したことをサーバに通知するために空行を送信します。
(4) Web サーバーの応答
クライアントがサーバーにリクエストを送信した後、サーバーはクライアントに応答を返します。
HTTP/1.1 200 OK
応答の最初の部分はプロトコルのバージョンです。番号と応答ステータス コード
( 5) Web サーバーは応答ヘッダー情報を送信します
クライアントがリクエストとともに自分自身に関する情報を送信するのと同じように、サーバーも自分自身と要求されたドキュメントに関するデータを、応答。
(6) Webサーバーはブラウザにデータを送信します
Webサーバーはブラウザにヘッダー情報を送信した後、ヘッダー情報の送信がここで終了であることを示す空行を送信し、応答します。 Content-Type ユーザーが要求した実際のデータはヘッダー情報で記述された形式で送信されます
(7) WebサーバーはTCP接続を閉じます
通常、Webサーバーはリクエストデータをブラウザに送信すると、 TCP 接続を閉じてから、ブラウザがこのコード行をヘッダー情報に追加した場合、
Connection:keep-alive
TCP 接続は送信後も開いたままになるため、ブラウザはリクエストを送信し続けることができます。同じ接続です。接続を維持すると、リクエストごとに新しい接続を確立するのに必要な時間が節約され、ネットワーク帯域幅も節約されます。
HTTP リクエストの形式
ブラウザが Web サーバーにリクエストを行うとき、リクエスト情報であるデータ ブロックをサーバーに渡します。 HTTP リクエスト情報は 3 つの部分で構成されます:
l リクエスト メソッド URI。プロトコル/バージョン
l リクエスト ヘッダー
l リクエスト テキスト
以下は HTTP リクエストの例です:
GET/sample.jspHTTP/1.1
Accept:image/gif.image/jpeg,*/*
Accept-Language:zh-cn
Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(互換;MSIE5.01;Window NT5.0)
Accept-Encoding:gzip,deflate
username=jinqiao&password=1234
(1) リクエストメソッド URI プロトコル/バージョン
リクエストの最初の行は「メソッド URL 提案/バージョン」: GET/sample.jsp HTTP/1.1
In上記のコード「GET」はリクエストメソッドを表し、「/sample.jsp」はURIを表し、「HTTP/1.1」はプロトコルとプロトコルバージョンを表します。
HTTP 標準に従って、HTTP リクエストは複数のリクエスト メソッドを使用できます。例: HTTP1.1 は、GET、POST、HEAD、OPTIONS、PUT、DELETE、および TARCE の 7 つのリクエスト メソッドをサポートします。インターネット アプリケーションで最も一般的に使用されるメソッドは GET と POST です。
URL はアクセスするネットワーク リソースを完全に指定します。通常はサーバーのルート ディレクトリへの相対ディレクトリを指定するだけなので、常に「/」で始まり、最後にプロトコル バージョンが通信中に HTTP の使用を宣言します。プロセスのバージョン。
(2) リクエストヘッダー
リクエストヘッダーには、クライアント環境とリクエスト本文に関する多くの有用な情報が含まれています。たとえば、リクエスト ヘッダーでは、ブラウザで使用される言語、リクエスト本文の長さなどを宣言できます。
Accept:image/gif.image/jpeg.*/*
Accept-Language:zh-cn
Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(互換性:MSIE5. 01: Windows NT5.0)
Accept-Encoding:gzip,deflate.
(3) リクエストボディ
リクエストヘッダーとリクエストボディの間に空行があり、この行は非常に重要であることを示します。リクエストヘッダーが終わりました。次はリクエストボディです。リクエスト本文には、顧客が送信したクエリ文字列情報を含めることができます:
username=jinqiao&password=1234
上記の HTTP リクエストの例では、リクエスト本文の内容は 1 行のみです。もちろん、実際のアプリケーションでは、HTTP リクエストの本文にさらに多くのコンテンツを含めることができます。
HTTP リクエスト メソッド ここでは GET メソッドと POST メソッドについてのみ説明します
l GET メソッド
GET メソッドは、通常、フォーム データを送信するために GET メソッドを使用します。 GET メソッドは単純なエンコードを行わないと、URL の一部として Web サーバーに送信されるため、GET メソッドを使用してフォーム データを送信すると、セキュリティ上のリスクが発生します。たとえば、
Http://127.0.0.1/login.jsp?Name=zhangshi&Age=30&Submit=%cc%E+%BD%BB
上記の URL リクエストから、フォームによって送信されたコンテンツを簡単に識別できます。 (その後はどうなりますか?) さらに、GET メソッドによって送信されるデータは URL リクエストの一部であるため、送信されるフォーム データ、特に大量のデータの量が大きすぎることはできません。 POST メソッドは、GET メソッドの欠点の一部を克服します。 POST メソッドでフォーム データを送信する場合、データは URL リクエストの一部として Web サーバーに送信されるのではなく、標準データとして送信されます。これにより、情報の機密性が保たれず、データ量が膨大になるという GET メソッドの欠点が克服されます。小さすぎる。したがって、セキュリティ上の理由とユーザーのプライバシーの尊重のため、通常はフォームを送信するときに POST メソッドが使用されます。
プログラミングの観点から見ると、ユーザーが GET メソッドでデータを送信した場合、データは QUERY_STRING 環境変数に保存されますが、POST メソッドで送信されたデータは標準入力ストリームから取得できます。
HTTP レスポンスは HTTP リクエストと似ており、HTTP レスポンスも次の 3 つの部分で構成されます:
l プロトコル ステータス バージョン コードの説明
l レスポンス ヘッダー (Response Header)
l レスポンスボディ
以下は HTTP です。応答の例:
HTTP/1.1 200 OK
Server:Apache Tomcat/5.0.12
Date:Mon,6Oct2003 13:23:42 GMT
Content-Length:112
 
<html><head>
<title>HTTP响应示例<title>
</head>
<body>
Hello HTTP!
</body>
</html>协议状态代码描述HTTP响应的第一行类似于HTTP请求的第一行,它表示通信所用的协议是HTTP1.1服务器已经成功的处理了客户端发出的请求(200表示成功):
HTTP/1.1 200 OK响应头(Response Header)响应头也和请求头一样包含许多有用的信息,例如服务器类型、日期时间、内容类型和长度等:
   Server:Apache Tomcat/5.0.12
Date:Mon,6Oct2003 13:13:33 GMT
Content-Type:text/html
Last-Moified:Mon,6 Oct 2003 13:23:42 GMT
Content-Length:112
 响应正文响应正文就是服务器返回的HTML页面:
  <html><head>
<title>HTTP响应示例<title>
</head>
<body>
Hello HTTP!
</body>
</html>
ログイン後にコピー
応答ヘッダーと本文も空行で区切る必要があります。
l HTTP 応答コード
HTTP 応答コードはステータス コードとも呼ばれ、HTTP リクエストを処理する Web サーバーのステータスを反映します。 HTTP 応答コードは 3 桁で構成されます。最初の桁は応答コードのタイプを定義します。
1XX - 情報タイプ (情報)、Web ブラウザー要求が受信され、さらに処理されていることを示します。 2XX - 成功タイプ ( Successful )、ユーザー要求が正しく受信、理解、処理されたことを示します。例: 200 OK
3XX-Redirection クラス (リダイレクト)。要求が成功しなかったため、顧客がさらなるアクションを実行する必要があることを示します。 4xx-クライアント エラー。クライアントのリクエストに次のようなエラーがあることを示します。 404 Not
Found。リクエストで参照されているドキュメントが存在しないことを意味します。
5XX-Server Error (サーバー エラー) は、サーバーがリクエストの処理を完了できないことを意味します: 500 など
私たち Web 開発者にとって、HTTP 応答コードをマスターすることは、Web アプリケーションのデバッグの効率と精度の向上に役立ちます。
安全な接続
Web アプリケーションの最も一般的な用途の 1 つは、Web サーバー側のプログラムを使用してオンライン ショッピングを可能にする電子商取引です。デフォルトでは、インターネット経由での情報の送信は安全ではないことを指摘する必要があります。あなたが友人にメ​​ッセージを送信すると、そのメッセージを開いてあなたのクレジット カード番号が含まれていると想像できるとしたら、それはどれほど悪いことでしょうか? 幸いなことに、多くの Web サーバーと Web ブラウザには安全な接続を確立する機能があるので、安全に通信できます。
インターネット上で安全な接続を提供するための最も一般的な標準は、セキュア ソケット レイヤ (SSl) プロトコルです。 SSL プロトコルは、Web 上で安全な方法でデータを交換するために使用されるアプリケーション層プロトコル (HTTP など) であり、公開キー エンコーディング システムを使用します。基本的に、これはビジネスの各関係者が公開キーと秘密キーを持っていることを意味します。一方が他方の公開鍵を使用して暗号化すると、一致する鍵を持っている人だけがそれを復号化できます。簡単に言うと、公開キー エンコーディングは、SSL 接続が確立された後、両方の当事者間でデータを交換するための安全な方法を提供し、両方のキーが検証されると、ビジネス上の連絡を行う前にそれらを検証します。データを安全に交換できます。
  • GET
    リクエストURIは、

  • POSTを通じてリソースを取得します。
    は、新しいコンテンツを追加するために使用されます

  • PUT
    は、特定のコンテンツを変更するために使用されます

  • 削除、
    削除コンテンツ

  • CONNECT、
    SSLを使用するなどのプロキシ転送に使用

  • オプション
    実行できるメソッドを尋ねる

  • PATCH、
    部分的なドキュメントの変更

  • PROPFIND、(wedav)
    属性の表示

  • Proppatch、(WEDAV)
    属性の設定

  • mkcol、(WEDAV)
    コレクション (フォルダー) の作成

  • Copy、(WEDAV)
    コピー

  • 移動、(wedav )
    Mobile

  • LOCK、(wedav)
    Lock

  • UNLOCK (wedav)
    Unlock

  • TRACE
    サーバーのリモート診断に使用されます

  • HEAD
    GETと同様、しかし戻りませんボディ情報、オブジェクトが存在するかどうかを確認し、オブジェクトのメタデータを取得するために使用されます

以上がRESTful http の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

http ステータス コード 520 は何を意味しますか? http ステータス コード 520 は何を意味しますか? Oct 13, 2023 pm 03:11 PM

HTTP ステータス コード 520 は、サーバーがリクエストの処理中に不明なエラーに遭遇し、より具体的な情報を提供できないことを意味します。サーバーがリクエストを処理しているときに不明なエラーが発生したことを示すために使用されます。サーバー構成の問題、ネットワークの問題、またはその他の不明な理由が原因である可能性があります。これは通常、サーバー構成の問題、ネットワークの問題、サーバーの過負荷、またはコーディング エラーが原因で発生します。ステータス コード 520 エラーが発生した場合は、Web サイト管理者またはテクニカル サポート チームに連絡して詳細情報と支援を得ることが最善です。

httpステータスコード403とは何ですか? httpステータスコード403とは何ですか? Oct 07, 2023 pm 02:04 PM

HTTP ステータス コード 403 は、サーバーがクライアントの要求を拒否したことを意味します。 http ステータス コード 403 の解決策は次のとおりです: 1. 認証資格情報を確認します。サーバーが認証を必要とする場合は、正しい資格情報が提供されていることを確認します。2. IP アドレス制限を確認します。サーバーが IP アドレスを制限している場合は、クライアントの IP アドレスは制限されています。ホワイトリストに登録されているか、ブラックリストに登録されていません。3. ファイルのアクセス許可設定を確認します。403 ステータス コードがファイルまたはディレクトリのアクセス許可設定に関連している場合は、クライアントがこれらのファイルまたはディレクトリにアクセスするための十分なアクセス許可を持っていることを確認してください。等

Web ページのリダイレクトの一般的なアプリケーション シナリオを理解し、HTTP 301 ステータス コードを理解する Web ページのリダイレクトの一般的なアプリケーション シナリオを理解し、HTTP 301 ステータス コードを理解する Feb 18, 2024 pm 08:41 PM

HTTP 301 ステータス コードの意味を理解する: Web ページ リダイレクトの一般的なアプリケーション シナリオ インターネットの急速な発展に伴い、Web ページの操作に対する人々の要求はますます高くなっています。 Web デザインの分野では、Web ページのリダイレクトは一般的かつ重要なテクノロジであり、HTTP 301 ステータス コードによって実装されます。この記事では、HTTP 301 ステータス コードの意味と、Web ページ リダイレクトにおける一般的なアプリケーション シナリオについて説明します。 HTTP301 ステータス コードは、永続的なリダイレクト (PermanentRedirect) を指します。サーバーがクライアントのメッセージを受信すると、

Nginx プロキシ マネージャーを使用して HTTP から HTTPS への自動ジャンプを実装する方法 Nginx プロキシ マネージャーを使用して HTTP から HTTPS への自動ジャンプを実装する方法 Sep 26, 2023 am 11:19 AM

NginxProxyManager を使用して HTTP から HTTPS への自動ジャンプを実装する方法 インターネットの発展に伴い、ますます多くの Web サイトが HTTPS プロトコルを使用してデータ送信を暗号化し、データ セキュリティとユーザーのプライバシー保護を向上させ始めています。 HTTPS プロトコルは SSL 証明書のサポートを必要とするため、HTTPS プロトコルを展開する際には特定の技術サポートが必要です。 Nginx は強力で一般的に使用される HTTP サーバーおよびリバース プロキシ サーバーであり、NginxProxy

クイックアプリケーション: PHP 複数ファイルの非同期 HTTP ダウンロードの実践的な開発事例分析 クイックアプリケーション: PHP 複数ファイルの非同期 HTTP ダウンロードの実践的な開発事例分析 Sep 12, 2023 pm 01:15 PM

クイック アプリケーション: PHP の実践的な開発ケース分析 複数ファイルの非同期 HTTP ダウンロード インターネットの発展に伴い、ファイル ダウンロード機能は多くの Web サイトやアプリケーションの基本的なニーズの 1 つになりました。複数のファイルを同時にダウンロードする必要があるシナリオでは、従来の同期ダウンロード方法は非効率的で時間がかかることがよくあります。このため、PHP を使用して HTTP 経由で複数のファイルを非同期にダウンロードするソリューションがますます一般的になってきています。この記事では、実際の開発事例を通して、PHP 非同期 HTTP の使用方法を詳しく分析します。

C# における一般的なネットワーク通信とセキュリティの問題と解決策 C# における一般的なネットワーク通信とセキュリティの問題と解決策 Oct 09, 2023 pm 09:21 PM

C# におけるネットワーク通信とセキュリティの一般的な問題と解決策 今日のインターネット時代では、ネットワーク通信はソフトウェア開発に不可欠な部分となっています。 C# では通常、データ送信のセキュリティ、ネットワーク接続の安定性など、ネットワーク通信の問題が発生します。この記事では、C# における一般的なネットワーク通信とセキュリティの問題について詳しく説明し、対応する解決策とコード例を提供します。 1. ネットワーク通信の問題 ネットワーク接続の中断: ネットワーク通信プロセス中に、ネットワーク接続が中断される場合があります。

HTTP 200 OK: 成功した応答の意味と目的を理解する HTTP 200 OK: 成功した応答の意味と目的を理解する Dec 26, 2023 am 10:25 AM

HTTP ステータス コード 200: 成功した応答の意味と目的を調べる HTTP ステータス コードは、サーバーの応答のステータスを示すために使用される数値コードです。このうち、ステータス コード 200 は、リクエストがサーバーによって正常に処理されたことを示します。この記事では、HTTP ステータス コード 200 の具体的な意味と使用法について説明します。まず、HTTP ステータス コードの分類を理解しましょう。ステータス コードは、1xx、2xx、3xx、4xx、5xx の 5 つのカテゴリに分類されます。このうち、2xx は成功応答を示します。 200 は 2xx で最も一般的なステータス コードです

httpリクエスト415エラーの解決策 httpリクエスト415エラーの解決策 Nov 14, 2023 am 10:49 AM

解決策: 1. リクエスト ヘッダーの Content-Type を確認する; 2. リクエスト本文のデータ形式を確認する; 3. 適切なエンコード形式を使用する; 4. 適切なリクエスト メソッドを使用する; 5. サーバー側のサポートを確認する。

See all articles