Webアプリケーションの技術的な詳細を実装するプログラマーは、サイトを公開する前にどのようなことを考慮すべきでしょうか? ジェフ・アトウッド]1がHttpOnlyクッキー、サイトマップ、クロスサイト・リクエスト・フォージェリを同じサイトの中で忘れることができるとしたら、私はどのような重要なことを忘れているのでしょうか?
私はウェブ開発者の視点からこのことを考えています。つまり、誰かがサイトの実際のデザインやコンテンツを作っているのです。 ですから、ユーザビリティやコンテンツはプラットフォームよりも重要かもしれませんが、プログラマーであるあなたがそれについて発言することはほとんどありません。 心配なのは、プラットフォームの実装が安定していて、性能が良く、安全で、その他のビジネス上の目標(コストがかかりすぎず、構築に時間がかかりすぎず、コンテンツがサポートしているようにGoogleで上位に表示されることなど)を満たすことです。
このことを、信頼できる環境でイントラネットタイプのアプリケーションを作ってきた開発者の視点から考えてみましょう。そして、これから初めて、人気の出そうなサイトをWWW全体に公開しようとしているのです。
また、漠然としたウェブスタンダードの回答ではなく、もっと具体的なものを求めています。 つまり、HTTPでのHTML、JavaScript、CSSは当然のことで、特にあなたがプロのウェブ開発者であることを明記した上で、です。 では、その先にあるのは、「どの規格」なのでしょうか? どのような状況で、そしてなぜ? **その規格の仕様書へのリンクを提示してください。
ここでの考え方は、私たちのほとんどがこのリストにあるもののほとんどをすでに知っているはずだということです。 しかし、1つや2つの項目については、これまであまり調べたことがなかったり、完全には理解していなかったり、あるいは聞いたことすらないかもしれません。 **インターフェイスとユーザーエクスペリエンス
rel="nofollow"
という属性を追加しましょうスパムを避けるため。rel="noopener noreferrer"
と target="_blank"
を付けて、リンク先ページの JavaScript が偽のログインページなど別の場所にリダイレクトされるのを防ぎましょう。詳細情報favicon.ico
というファイルがあることを確認します。HTMLにアイコンが全く記載されていなくても、ブラウザが自動的にリクエストします。もし/favicon.ico
がないと、404が大量に発生し、サーバーの帯域を消耗することになります。
SEO(検索エンジン最適化)についてexample.com/index.php?page=45
ではなく、example.com/pages/45-article-title
を使用してください。#
を使用する場合は、#
を #!
に変更し、サーバー上では $_REQUEST["_escaped_fragment_"]
を #!
の代わりに googlebot が使用するようにします。言い換えると、./#!page=1
は、./?_escaped_fragments_=page=1
となります。また、FF.b4やChromiumを使用しているユーザーにとっては、history.pushState({"foo":"bar"}, "About", "./?page=1");
は素晴らしいコマンドです。そのため、アドレスバーが変わっても、ページは再読み込みされません。これにより、#!
の代わりに?
を使用して動的なコンテンツを維持することができます。また、リンクをメールで送信する際に、このページの後にあることをサーバーに伝えることができ、AJAXは別の余分なリクエストをする必要がありません。/sitemap.xml
に置いてください。<link rel="canonical" ... />
を使用しますが、この問題はGoogleウェブマスターツールからも対処できます。を求めるリクエストを(
301 Moved Permanentlyを使用して)
example.com` にリダイレクトする(またはその逆)ことで、両方のサイトの間で Google ランキングが分裂するのを防ぎます。