ホームページ  >  記事  >  ウェブフロントエンド  >  代わりに // を使用する利点

代わりに // を使用する利点

小云云
小云云オリジナル
2018-02-07 09:09:251752ブラウズ

//デフォルト プロトコル

/デフォルト プロトコルの使用は、リソース アクセスのプロトコルが現在のページと一致していることを意味します。現在のページが http の場合は、アクセスに http プロトコルを使用します。アクセス用の https プロトコル。この方法では、http であるか https にアップグレードされているかにかかわらず、コードを変更する必要はありません。現在、多くの CDN リソースがこの方法で参照されています。外部リンクのプロトコル ヘッダーは不確実であるため、通常は内部リンクで使用されます。

国内事業者等による大規模な乗っ取りにより、ウェブサイト訪問時に大量の低俗な広告が挿入され、ユーザーエクスペリエンスが低下しているため、大手検索エンジンは皆様にサイトのhttps化に努めていただきたいと考えています。メソッド

// どういう意味ですか?

// は、デフォルトのプロトコルを記述する方法です。例:

//jb51.net/css///jb51.net/css/

缺省协议默认使用当前协议

当前页面为HTTP时,等效

http://jb51.net/css/

当前页面为HTTPS时,等效

https://jb51.net/css/

デフォルトのプロトコルは、デフォルトで現在のプロトコルを使用します

現在のページは HTTP であり、同等です

http://jb51.net/css/

現在のページが HTTPS の場合、

https://jb51.net と同等です/css/

http:// の代わりに // を使用する条件と利点は何ですか?

現在のページとターゲットリソースはHTTPとHTTPSの両方をサポートしており、httpからhttpsにアップグレードされています

利点は、ユーザーがページを開く方法に応じてリソースのリクエストプロトコルを適応的に選択できることです

https ページのコンテンツについては、参照してください。サーバーはデフォルトで非 https コンテンツを整理するため、この状況を回避できます

// 欠点

デバッグのためにローカル ファイルを直接開く場合、使用されるプロトコルはファイルプロトコル (file://)

この時点で、プロトコルは file://jb51.net/css/ になりますが、明らかに存在しません

現在の Web サイトのプロトコルと一貫性を保ち、現在と一致するバージョンを迅速にリリースしてくださいプロトコルを強化し、同時に SSL または他のプロトコル バージョンの導入コストを削減します。開発者は、サーバー クラウドによってどのようなプロトコルが提供されているかを気にする必要はありません。これは、nodeJS の考え方と一致しています。// 記号を使用するだけで済みます。

利点は次のとおりです:

多くの Web サイトが http を https にアップグレードしているため、これにより URL のハイジャックを防ぐことができます。初期段階の変換プロセスでの間違いを避けるために、強制的なジャンプは行いませんでした。つまり、ユーザーが http または https にアクセスすると、通常はアクセスできますが、内部の js、画像、リンクなどでは https または http を使用できません。解決策は、http の代わりに // を使用することです。そして https です。

//この書き方では、リクエストしたプロトコルに基づいてプロトコルが自動的に追加されます。たとえば、Web サイトは http プロトコルを使用しているため、実際にアクセスするのは http://xxxx です。Web サイトが https プロトコルを使用している場合、http: と記述すると、要求されたアドレスは https://xxxx になります。 //xxx。Web サイトがオンラインで https である場合、セキュリティ警告が報告され、一部のブラウザではページを正常に読み込むことさえできない可能性があります。 https を直接書く場合は、ローカル開発が http であることを知っておく必要があります...

以下の内容は Zhihu からの典型的な返信です

🎜🎜利点 多くの人が回答しています。この利点は、https にアップグレードするときに最も感じられます。先人たちがこのように書かなかった理由を付け加えているだけです。もちろん、この書き方を知らないフロントエンドも確かに多いです。しかし、分かっていてもこのようには書けないでしょう。 UC Browser の以前のバージョンの多くはこの記述方法をサポートしていないため、http://example.com のページに //example と記述すると、//a.b/ は直接 /a.b/ として解釈されます。 cdn.net/static-file のアドレス。UC は実際には http://example.com/example-cdn.net/static-file にアクセスします。 UC の過去の市場シェアは誰もが知っています。つまり...🎜🎜🎜🎜一見すると、「フルサイトのHTTPSアップグレード」を行っていないように見えます。サイト全体をHTTPSにアップグレードしたとき、http://を書いた人を本当に殺したいと思いました。特にデータベース内のリンクと URL は JS で結合されます。この期間中は、さまざまな定期的なルールが使用され、手動による検証が必要でした。しかし、http://を書いているプログラマーが多すぎて断念せざるを得ませんでした。コメントでその理由を尋ねた人もいます。その理由は、// を完全に記述すると、データベース内のデータとソース コードを変更する必要がなく、https をアップグレードするだけです。 https 変換はめったに起こらないと言えるかもしれませんが、私は Tencent と Alibaba の両方で https 変換に遭遇しました。また、Alibaba にいたとき、私は 1688 Web サイト全体のフロントエンド コード変換を担当していました (各部門が独自に変更しました)。 ( HTML だけでなく、CSS、JS、Velocity テンプレートなども同様です。ただの汚れ仕事です。一体、なぜこの仕事を引き受けたのでしょうか?) http:// を書いた人を何度叱ったと思いますか?フロントエンドによっては、JS で直接 http を記述することもあります。現在のページのプロトコルを使い続けると死にますか? 🎜🎜🎜

一部のフロントエンドは、URL を判断するために正規表現を使用する場合、実際には http:// と https:// のみを受け入れますが、// は受け入れません。これは本当に常識の欠如です。プログラマーが多すぎる、知恵が遅れすぎる。あるいは、単に HTTPS について聞いたことがないだけかもしれません。それでも理解できない場合は、いくつか質問させてください。 http:// を使用すると、デフォルトで http プロトコルを使用して現在のページが表示されます。フロントエンドがそのプロトコルを決定するのはなぜですか。現在のページ? http リンクが https ページのエラーを報告することをご存知ですか?現在のページのプロトコルを引き続き使用する必要があるため、// https:// を使用する場合も同じ問題が発生します。3 年後に https:// が存在するかどうかはどうやってわかりますか?それまでにすべてを https:// に変更しますか?明らかに間違っている仮定を立てないでください。現在のページがどのプロトコルで開かれるかはわかりません。したがって、 // ああ!たとえば、多くの中国人プログラマーは、電話番号には数字と括弧のみが含まれており、文字は含まれていないと信じています。本当か?

世界的な置き換えだけでは十分ではないと言う人もいますか?たとえば、Taobao が https をアップグレードする必要があり、すべての http:// を // に置き換えるとします。最初のバグは、 ですが、当時 http://tmail.com は https をサポートしていなかったので、一定の範囲内のドメイン名を http://(taabao|taobao2|taabao3).com // に置き換えました。 $1.com の 2 番目のバグ: 一部の JS は URL = "http://" + location.hostname + '/' + path のように書かれており、一部の JS は /^http:/// .test(input) のように書かれています。 。これには通常のルールを使用できないと述べました。すべての JS で http をグローバルに検索し、手動で確認します。タオバオにどれだけのJSファイルがあるかご存知ですか...そしてこれらのファイルは10年間キャッシュされています...変更しても更新されない可能性があります。そして、一度間違いを犯してユーザーの注文に影響を与えてしまったら、ジャック・マーの損失である 1 億を支払う余裕がありますか? 3 番目のバグ: 一部のデータはコード内にまったく存在せず、データベース内に存在します。たとえば、user.image の値は http で始まります。そこで user.image を user.image.replace('http://', '//') と記述するか、データベース内のデータを直接変更することになります(データ量が多い場合は基本的に不可能です) 4 つのバグ: nginx とクロスドメインのドメイン名を変更するのを忘れました。 5 つ目のバグ: 設定システムの Base_url を変更するのを忘れました。これを解決するのは困難です。運が良ければ、これを // に変更するだけです (https の外部サポートで十分です)。 N 番目のバグ... HTTPS のアップグレードは簡単だと言われれば、やってみると、どれだけ多くの作業が必要になるかがわかります。最善の解決策は、現在のページをたどったり、変数を使用したりするなど、プロトコルを簡単に変更できるようにすることです。いずれにせよ、http:// をハードコードするのは絶対に良くありません。プログラマの中には、HTTPS が利用可能であることを明らかに知っているにもかかわらず、HTTPS との互換性を持たない人がいます。「2 年後にはこの会社を辞めるだろうし、HTTPS は少なくともあと 3 年は使えるだろう」と考えます。

ファイルをリンクするときに http:// の代わりに // を使用する開発者が増えています。つまり、< a href="http://jb51.net... 通常、< a href = " / と書かれます。 /http://jb51.net...、これと従来の http の違いは何ですか?

元々あなたのウェブサイトは http で、src はすべて http で始まりました。あなたのページに子供や純粋な広告にふさわしくないコンテンツがたくさん詰め込まれていたとき、誰かが私に言いました。 https を置き換えることでこの問題を改善できます。そうすれば、以前の src と ajax が http:// の代わりに // と書かれたことがどれほど賢明な判断だったかがわかるでしょう。 。 。

Zhulang CMS 公式

ますます多くのオープンソースとクラウドプラットフォームの出現と、SSL プロトコルの広範な導入 (Zhulang CMS では SSL プロトコルのサポートが完全に有効になっているなど) により、人々は選択とhttpプロトコルの識別。ご存知のとおり、SSL 参照が多すぎると通常のサイトの効率が低下する可能性がありますが、この理由から純粋な SSL バージョンを再設計することはできません。オープン ソース ライブラリに示されているように、ほとんどのプラットフォームは SSL バージョンと非 SSL バージョンの両方を提供します。たとえば、次の 2 つのライブラリ: https://code.z01.com/js/jquery-3.2.1.slim.min.jshttp://code.z01.com/js/jquery-3.2.1.slim.min。 js の参照効果は一貫しています。そのため、開発者は「//URL/File」メソッドを直接使用して以前のプロトコルを置き換え、自動的に認識できるようにします。つまり、SSL プロトコルであっても通常の HTTP プロトコルであっても、現在のサイトを自動的に識別して自動的に照合するのはブラウザーに任されており、それによって最も安全なリクエストと最も効率的なロード方法が実現されます。一言で言えば、これは開発手法と開発思考であり、クラウド コンピューティングの Web およびモバイル開発は日々成長しています。

関連する推奨事項:

thinkPHP 開発 (http://w2ks.com)

以上が代わりに // を使用する利点の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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