問題タブ [nph]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - PERL の「-」を含むファイル名に関する問題
「nph-select.pl」というファイルを作成し、以下のようにリダイレクト用のコードを配置しました。
ファイルを実行すると、「ドキュメントはここに移動しました」という302 STATUSメッセージが表示されます。しかし、「-」を削除するだけで同じファイルの名前を変更している場合、つまり新しいファイル名が「nphselect.pl」の場合、リダイレクトでも適切に実行されます。誰かが私が見逃している設定を提案できますか?
私のリクエストヘッダーは
Host localhost:8080
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
Accept text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
RESPONSE HEADERS は空白です。
http - IIS 7.0 の CGI 実行可能 EXE で NPH モードを使用する - これは「リアルタイム」にできますか?
IIS 7.0 サーバーで実行する CGI アプリケーションのプロトタイプを作成しています。最終的に、そのアプリケーションは、実際のデータを生成するのに時間がかかる可能性のあるクエリに応答して生成された多数の HTTP チャンク応答を送信します。
その側面 (つまり、実際のデータの生成) を掘り下げる前に、cgi アプリが実際に非解析ヘッダー モードで実行されているかどうかをテストしたいと思いました (つまり、cgi アプリ自体がすべてのヘッダーを生成し、IIS はすべての出力をヘッダーに返すだけです)。 http ブラウザー/エージェントを要求しています。
だから私は次を返す簡単なアプリを書きました(タイムスタンプに注意してください-タイムスタンプ付きの各行の間に1秒の一時停止があり、テキストが示すように、これは実行に10秒強かかります-実際にcgiアプリを実行できますコマンド ラインを実行し、このタイミングを観察します。
サーバーにexeをインストールしてInternet Explorerで開くと、予想されるテキストが表示されます(別の時間帯と別のタイムゾーンで実行したため、時間が異なります):
ただし、10 秒が経過するまで何も表示されません。(注 - クロムでも同じ結果)
確認するために、テキスト エディターで http 要求を作成し、サーバーへのポート 80 の telnet に貼り付けました。上記のように、応答全体の前に 10 秒のギャップを観察しました。
exeにプレフィックス「nph-」が付いているかどうかに関係なく、同じ結果が得られます-「nph-hello.exe」、「nphhello.exe」、および「hello.exe」を使用して、telnetで同じテストを実行しました。以下を使用します。
(注:識別アドレスは、この投稿用に調整されています)
(exe 命名プレフィックスの関連性については、http://support.microsoft.com/default.aspx?scid=kb;EN-US;q176113 の「回避策として...」で始まる「解決策」の下のメモをお読みください)
私は、この情報が古くなっているか、この機能を有効にするために他の何かを有効にする必要があると思わせる、exe 名の接頭辞に関連する telnet の識別可能な出力の違いを観察していないようです。 cgi アプリが開始される前 - これは、アプリ自体が行うことではなく、プレフィックスが使用される理由を説明しています - つまり、IIS は応答を待つかどうかを知る必要があります)
表面的には、目的の結果を達成しています-データは要求元のhttpエージェントへの道を見つけます-リアルタイムで発生することを望んでいるので、リクエストが行われると進行状況の更新が表示されます.
だから私の質問:
1) NPH をオンにするために必要な設定はありますか (またはプレフィックスは正しいですか?)
2) CGI アプリが本当に NPH モードであるかどうかを確認するために行うことができるテストはありますか?
3) stddout (つまり、応答データ) をリクエスト側のエージェントにリアルタイムでパイプすることを意図していますか?それとも、IIS は最初になんらかの方法でバッファリングして解析する必要がありますか?
linux - libsslおよびsendmsg()SCM_RIGHTSを使用したSSLサーバーの実装
Linux環境で次のポリシー/スキームに基づいて何らかのSSLサーバーを作成できるかどうか疑問に思っています。
(1)最初のリクエストは、親サーバープロセスで着信する必要があります。SSL接続を確立し、リクエストの最初の解析も処理した後、リクエスト(ソケット)はリクエスト処理プロセスに転送され、さらに処理が行われます。
(2)リクエスト処理プロセスは、事前に実行する必要があるものになります。この意味では、ここではfork-exec-pipeベースのスキームは使用しません。
(3)親サーバープロセスと要求処理プロセス間の通信については、sendmsg()-SCM_RIGHTS手法を使用して、開いたソケット記述子を親サーバープロセスから要求処理プロセスにコピーするために、いくつかのIPCが確立されています。
(4)SSL機能に関しては、OpenSSL(libssl)を使用することになっています。
(5)リクエスト処理では、親サーバープロセスの共有ソケット記述子を利用して、新しいSSLソケットを作成することになっています。
重要なのは、サーバーとリクエスト処理プロセスの間でデータを転送するパフォーマンスを無駄にしたくないということです。また、リクエストごとにリクエスト処理プロセスを生成したくありません。そのため、事前にリクエスト処理プロセスを作成したいと思います。
私がここで作ろうとしていることがあなたにとって意味があるかどうかはよくわかりませんが、上記のアプローチが実行可能かどうかについて、誰かが私にヒントを教えていただければ幸いです。
perl - Perl スクリプトを使用して HTTP 応答で HTML 部分をチャンクとして送信しようとしていますが、コンパイル エラーが発生します。
以下は、HTML ページをチャンク応答として送信するために使用しているスクリプトの一部です。ただし、スクリプトを実行すると、次のようなコンパイル エラーがスローされます。
nph-99_1_1_18.pl の 19 行目、"print "233" の近くでオペレーターが予期した場所に数値が見つかりました (18 行目から始まる暴走した複数行の "" 文字列である可能性があります)