ホームページ > バックエンド開発 > PHPチュートリアル > Nginx データ構造 - 整数と文字列

Nginx データ構造 - 整数と文字列

WBOY
リリース: 2016-07-29 09:08:35
オリジナル
973 人が閲覧しました

Nginx データ構造 – 整数と文字列

タグ: Nginx データ構造


クロスプラットフォーム、高効率、統一された仕様を考慮して、Nginx は多くのデータ構造をカプセル化しており、そのほとんどは他の開発プロジェクトで使用されています。 、頻繁に使用されるコンテナーがいくつかあり、もちろん複雑なコンテナーもいくつかあります。各記事では、著者が 1 つまたは 2 つのポイントを分析して実践します。

整数カプセル化

<code><span>typedef</span> intptr_t ngx_int_t;
<span>typedef</span> uintptr_t ngx_uint_t'</code>
ログイン後にコピー

文字列型

Nginxでは文字列を表すためにNgx_str_tが使われており、その定義は以下の通りです:

<code><span>typedef</span> struct {
    size_t      len;
    u_char     *<span><span>data</span>;</span>
} ngx_str_t;</code>
ログイン後にコピー

データポインタの2つのメンバーのみを持つ単純な構造であることがわかります。は文字列の開始アドレスであり、len は文字列の長さを表します。
ここで混乱するかもしれません。C 言語の文字列はそれを表すためにポインタのみを必要とします。なぜここで長さが必要なのでしょうか。これは、C 言語でよく話題になる文字列が実際には ' で始まるためです。 では、これを行うことでどのようなメリットがあるのでしょうか?ネットワーク サーバーとして、Nginx は開発を容易にする必要性を当然考慮しています。ネットワーク リクエストで最も公開されるのは、URL アドレス、リクエスト ヘッダー情報、リクエスト エンティティなどです。たとえば、ユーザー リクエストの URL を考えてみましょう:

<code>GET /test/<span>string</span>?<span>a</span>=<span>1</span>&b=<span>2</span><span>http</span>/<span>1.1</span>\r\n</code>
ログイン後にコピー
次に、Ngx_str_t 構造体を使用してこの値を保存すると、今度はリクエストのタイプを取得する必要があります。それは GET、POST、または PUT ですか?メモリをコピーする必要はありません。内部のデータ ポインタが元の ngx_str_t と同じアドレスを指すようにし、len を 3 に変更するだけです。

もちろん、これは最も単純なアプリケーションにすぎません。文字列型は、ほとんどすべてのビジネス システムやネットワーク フレームワークで広く使用されている基本的な型であり、適切な設計構造は Nginx の低メモリ消費を保証する重要な要素です。

ngx_str_t 操作

文字列のような単純な構造では、Java や Python などの最新の高級言語では文字列型に対する豊富な操作が提供されており、Nginx にも多数のパブリック関数が用意されています。文字列操作などの関数もありますが、中にはあまり使いにくいように思える関数もあるので、これらの関数を 1 つずつ見てみましょう。

寝て、明日書きましょう

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); }); 上記は、Nginx のデータ構造 (整数と文字列) を内容も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート