Webサイトのバックエンドとしてのphpとjavaの違いは何ですか?
ディスカッションへの返信 (解決策)
違いはありません
違いはありません
なぜ一部の企業は Web サイトのバックエンドとして Java を選択するのでしょうか?
誰もが気に入っており、その上、Java はソース コードを提供する必要がありません
誰もが気に入っており、Java はソース コードを提供する必要がありません
Java は、C 言語と同様、非スクリプト言語ですか?
これ以外に、違いは何ですか?
セキュリティ....
セキュリティ....
実行ファイルのソースコードを知るのは難しくありませんか?
セキュリティ....
セキュリティとはどのようなセキュリティを指しますか?
私は Java を使用してバックエンド マークを書いたことはありません
Java はより多くのこと (高コスト) を行うことができ、PHP はより少ないこと (低コスト) を行うことができます。
Web サイトのバックエンド要件が高くない場合は、php を使用できます
セキュリティ....
セキュリティとはどのようなセキュリティを意味しますか?
コピーして貼り付けるだけです
いくつかの側面から見てみましょう:
1. 実行メカニズム:
Java コードがバイトコードにコンパイルされた後、仮想マシン内の JIT によってローカル コードに再コンパイルされると噂されています。私自身のテストの結果、単純な Memcache プロトコル キャッシュ サーバーを Java で実装し、Java 1.6 で実行したところ、同じ量のデータに対するアクセス時間の比率は約 1 でした。 3:2とギャップはあるものの、想像よりはずっと良いです。 Java 1.7 では JIT が大幅に改善されており、そのパフォーマンスは Java 1.6 よりもさらに優れています。
PHP はテキスト コードを直接解釈して実行します。オペコード キャッシュ テクノロジを使用しても、依然として克服できないパフォーマンス ギャップが存在します。 PHP のオペコードは Java のクラス バイトコードに似ており、引き続き解釈および実行されます。
2. 同時実行性の処理:
Java は、同時処理に対して単一プロセス マルチスレッド アプローチを採用しており、Web アプリケーションは Web サーバーの起動とともに開始され、Web ブラウザーからのリクエストはスレッド プール内のアイドル状態のスレッドに割り当てられます。つまり、リクエストが到着すると、プロセスの準備が整い、スレッドが行う必要があるのはビジネス ロジックの処理だけです。
PHP は同時処理のためのマルチプロセスアプローチを採用しています。Web サーバーには物理的な Web アプリケーションの概念はなく、リクエストの到着と同時にプロセスが開始されます。 Fast CGI 環境には、スレッド プールと同様のプロセス プール テクノロジがあり、パフォーマンスの向上に非常に役立ちます。ただし、Web サーバーと Fast CGI は依然としてソケットを介して通信する必要があるため、ある程度の IO 損失が発生します。その一方で、プロセス プール内のプロセス間の通信も困難になります。同時処理の点では Java と比較することはできません。
3. データベース アプリケーション:
Java はデータベース接続プール テクノロジを使用して、データベース接続プロセスによって生じる時間のロスを節約できます。
PHP にはこの利点がありません。理由は上記の 2 番目の点にあります。
データベース インターフェイスに関しては、Java には JDBC があり、PHP には PDO があり、この 2 つは非常に似ています。ただし、Java には、データベース操作を非常に簡単にする ORM テクノロジ フレームワーク (Hibernate など) が多数あり、PHP の実行方法によって、それが ORM の制限領域であるかどうかが決まります (もちろん、ORM を実行することもできますが、どの程度まで実行できるか)実行できるかどうかは、ORM によって決まります (発生するパフォーマンス損失の許容範囲によって決まります)。
4. キャッシュ テクノロジ
Java は単一プロセスです。もちろん、ネットワーク IO がないため、Ehcache などの優れたキャッシュ フレームワークもあります。性能は非常に高いです。
PHP のマルチプロセスとシングルスレッドは、Memcache などの外部キャッシュ サーバーのみを使用できると判断します。
5. ホット デプロイメント
サーバーを停止せずにバグを修正したい場合、Java のホット デプロイメント機能は非常に弱いです。それをするのは難しいです。
PHP は当然ながらホットデプロイされます。
6. 開発コスト
優れた Java プログラマーにはより多くの知識が必要で、開発とデバッグのサイクルは長くなり、より優れた Web サーバーには料金もかかります。
PHPは無料で、Webサーバーも無料です。
7. セキュリティ
これは、セキュリティをどのように定義するかによって異なります。コードのセキュリティの場合、この点では、この 2 つはほぼ同じです。
Java には、一部の「不正な操作」が実行できないようにするためのセキュリティ構成メカニズムがあります。この点では、PHP は脆弱です。
ただし、Java はバグによりアプリケーション全体を簡単にクラッシュさせる可能性がありますが、PHP ははるかに安全です。
実際、Java には多くの利点がありますが、意思決定者が Java ではなく PHP を選択できるのは最後の 3 つだけです。
コピーして貼り付けるだけです
いくつかの側面から見てみましょう:
1. 動作メカニズム:
Java コードがバイトコードにコンパイルされた後、仮想マシン内の JIT によってローカル コードに再コンパイルされるとの噂です。私自身のテストの結果、単純な Memcache プロトコル キャッシュ サーバーを Java で実装し、Java 1.6 で実行したところ、同じ量のデータに対するアクセス時間の比率は約 3 でした。 2、ギャップはあるものの想像よりずっと良いです。 Java 1.7 では JIT が大幅に改善されており、そのパフォーマンスは Java 1.6 よりもさらに優れています。
PHP はテキスト コードを直接解釈して実行します。オペコード キャッシュ テクノロジを使用しても、依然として克服できないパフォーマンス ギャップが存在します。 PHP のオペコードは Java のクラス バイトコードに似ており、引き続き解釈および実行されます。
2. 同時実行性の処理:
Java は、同時処理に対して単一プロセス マルチスレッド アプローチを採用しており、Web アプリケーションは Web サーバーの起動とともに開始され、Web ブラウザーからのリクエストはスレッド プール内のアイドル状態のスレッドに割り当てられます。つまり、リクエストが到着すると、プロセスの準備が整い、スレッドが行う必要があるのはビジネス ロジックの処理だけです。
PHP は同時処理のためのマルチプロセスアプローチを採用しています。Web サーバーには物理的な Web アプリケーションという概念はなく、リクエストの到着と同時にプロセスが開始されます。 Fast CGI 環境には、スレッド プールと同様のプロセス プール テクノロジがあり、パフォーマンスの向上に非常に役立ちます。ただし、Web サーバーと Fast CGI は依然としてソケットを介して通信する必要があるため、ある程度の IO 損失が発生します。その一方で、プロセス プール内のプロセス間の通信も困難になります。同時処理という点では Java と比較することはできません。
3. データベース アプリケーション:
Java はデータベース接続プール テクノロジを使用して、データベース接続プロセスによって生じる時間のロスを節約できます。
PHP にはこの利点がありません。理由は上記の 2 番目の点にあります。
データベース インターフェイスに関しては、Java には JDBC があり、PHP には PDO があり、この 2 つは非常に似ています。ただし、Java には、データベース操作を非常に簡単にする ORM テクノロジ フレームワーク (Hibernate など) が多数あり、PHP の実行方法によって、それが ORM の制限領域であるかどうかが決まります (もちろん、ORM を実行することもできますが、どの程度まで実行できるか)実行できるかどうかは、ORM によって決まります (発生するパフォーマンス損失の許容範囲によって決まります)。
4. キャッシュ テクノロジ
Java は単一プロセスであり、多くのキャッシュは外部ツールに頼らずに Java ヒープ内で直接実行できます。もちろん、ネットワーク IO がないため、Ehcache などの優れたキャッシュ フレームワークもあります。パフォーマンスは非常に高いです。
PHP のマルチプロセスとシングルスレッドは、Memcache などの外部キャッシュ サーバーのみを使用できると判断します。
5. ホット デプロイメント
サーバーを停止せずにバグを修正したい場合、Java のホット デプロイメント機能は非常に弱いです。それをするのは難しいです。
PHP は当然ながらホットデプロイされます。
6. 開発コスト
優れた Java プログラマーにはより多くの知識が必要で、開発とデバッグのサイクルは長くなり、より優れた Web サーバーには料金もかかります。
PHPは無料で、Webサーバーも無料です。
7. セキュリティ
これは、セキュリティをどのように定義するかによって異なります。コードのセキュリティの場合、この点では、この 2 つはほぼ同じです。
Java には、一部の「不正な操作」が実行できないようにするためのセキュリティ構成メカニズムがあります。この点では、PHP の方が脆弱です。
ただし、Java はバグによりアプリケーション全体を簡単にクラッシュさせる可能性がありますが、PHP ははるかに安全です。
実際、Java には多くの利点がありますが、最後の 3 つだけでも、意思決定者が Java ではなく PHP を選択する可能性があります
なるほど、淘宝網がバックエンドの作成に Java を使用するのも不思議ではありません

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。
