検索

RESTful http の詳細な紹介

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

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 までご連絡ください。
JavaScriptの役割:WebをインタラクティブでダイナミックにするJavaScriptの役割:WebをインタラクティブでダイナミックにするApr 24, 2025 am 12:12 AM

JavaScriptは、Webページのインタラクティブ性とダイナミズムを向上させるため、現代のWebサイトの中心にあります。 1)ページを更新せずにコンテンツを変更できます。2)Domapiを介してWebページを操作する、3)アニメーションやドラッグアンドドロップなどの複雑なインタラクティブ効果、4)ユーザーエクスペリエンスを改善するためのパフォーマンスとベストプラクティスを最適化します。

CおよびJavaScript:接続が説明しましたCおよびJavaScript:接続が説明しましたApr 23, 2025 am 12:07 AM

CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

Webサイトからアプリまで:JavaScriptの多様なアプリケーションWebサイトからアプリまで:JavaScriptの多様なアプリケーションApr 22, 2025 am 12:02 AM

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Python vs. JavaScript:ユースケースとアプリケーションと比較されますPython vs. JavaScript:ユースケースとアプリケーションと比較されますApr 21, 2025 am 12:01 AM

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

JavaScript通訳者とコンパイラにおけるC/Cの役割JavaScript通訳者とコンパイラにおけるC/Cの役割Apr 20, 2025 am 12:01 AM

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

JavaScript in Action:実際の例とプロジェクトJavaScript in Action:実際の例とプロジェクトApr 19, 2025 am 12:13 AM

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

JavaScriptとWeb:コア機能とユースケースJavaScriptとWeb:コア機能とユースケースApr 18, 2025 am 12:19 AM

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScriptエンジンの理解:実装の詳細JavaScriptエンジンの理解:実装の詳細Apr 17, 2025 am 12:05 AM

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

See all articles

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

メモ帳++7.3.1

メモ帳++7.3.1

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

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。