HTTP高度な記事

MIMEデータタイプ

1.テキスト:読み取り可能なデータであるテキスト形式、我々はtext / htmlの最も精通して、およびハイパーテキスト文書を表し必要があり、加えて、
プレインテキスト形式のテキスト/、スタイルシートのテキスト/ CSSとそうではあります。
2.画像:すなわち、画像ファイル、画像/ gif形式、画像/ JPEG、ある画像/ PNG など。
3.オーディオ/ビデオ:オーディオおよびビデオデータ、オーディオ/のMPEGなど、ビデオ/ MP4などがあります。
4.アプリケーション:データフォーマットが固定されていない、とすることができるテキストはまた、バイナリであってもよく、それは、上位層アプリケーションによって解釈されなければなりません。
共通するのは、アプリケーション/ JSON、アプリケーション/ javascriptの、あるアプリケーション/ PDF あなたが本当にしていない場合、また、など、
単に「ブラックボックス」言ったように、あるデータの種類を知っている、アプリケーション/ octet-streamと、である、2つの不透明になります
バイナリデータ。

エンコード形式のエンコードタイプ

1. gzip形式:GNU ZIP圧縮形式は、インターネットで最も人気のある圧縮形式である;
2デフレート:秒だけのgzipの人気にはzlib(デフレート)圧縮フォーマット、;
3. BR:HTTPのために特別に最適化された新しい圧縮アルゴリズム(Brotli)。

 

 

 

 

 

 

 

 

 、重量は0.9で、最終的に任意のデータ型、重量は0.8であるXMLファイルに続いて、重みが1である、あなたはHTMLファイルのほとんどを使用したいブラウザを表します。サーバは、要求ヘッダーを受信した後、それは実際の状況に応じた重みを計算し、その後、出力HTMLまたはXMLの優先順位であろう。

 

大きなファイルを転送します

テキストファイル、画像、オーディオ、ビデオなどのマルチメディアデータ自体のためのより良い圧縮率が既に非常に圧縮されているなどのgzip圧縮アルゴリズムのみ通常、プロセスは小さなgzip形式になっていませんしています

送信ブロック

転送エンコーディング:これらの二つのフィールドでの応答メッセージが同時に表示されないことができると言うことですチャンク「と」コンテンツ長「、これら2つのフィールドは、相互に排他的ですが、応答パケットの送信がいずれかのいずれかで、長さが知られています未知の長さ

GitHubの、GitHubのからダウンロードソースパッケージは、一度ではなく、すべてのよりも、リアルタイムでのリアルタイム圧縮を送信し、本体の長さが不明を開始して、その後、良い圧縮を送っています。したがって、我々は、この部分の長さの部分を送信するために、圧縮部チャンクエンコーディングを使用する必要が知られているが、完成した圧縮の全長にのみ知られています。データを送受信「ストリーミング」で使用されるエンコードチャンク、データは、典型的には、動的データである、オンザフライで生成されます

レンジリクエスト

サーバが先に応答フィールドで使用されなければならないように、Webサーバーは、必要な機能を実現することができますされていないか、実現することはできません「のAccept-範囲:バイト」はっきりとクライアントに通知:「私は、要求の範囲をサポートしています。」

範囲は、HTTPヘッダフィールドの範囲要求を専用のフォーマットが「バイト= XY」、xおよびyは、範囲データバイトである場合です。

アプリケーション:ブレークポイントのダウンロード

複数のデータ

メッセージ本体がマルチバイトシーケンスのセグメントから構成されていることを示す、「マルチパート/ byteranges」、またセグメント間のパラメータ「境界= XXX」は、所定の分離を有する:この状況は、特別なMIMEタイプを使用する必要がマーク。

長い接続接続:キープアライブ

TCP接続が長時間のため閉鎖されていない、サーバーは、サーバーのリソースを占有するメモリにその状態を保存する必要があります。あなたが自由な長い髪の多くも接続だけではない持っている場合、それはすぐに、本当にユーザーのための必要性をサービスを提供することができないサーバーで、その結果、サーバーのリソースが不足します。サーバーを教え、フィールド:クライアント上では、事前に「クローズ接続」:要求を追加することができます「この通信を接続が閉じられた後に」Serverは、私たちは、クライアントが接続を閉じるためのイニシアチブをとる必要があることを知って、このフィールドを見ているので、応答メッセージにも、このフィールドに追加し、ソケットAPIを送信した後にTCP接続を閉じ呼び出します。

サーバは通常、接続を閉じるためのイニシアチブを取ることはありませんが、また、nginxの例を得るために、いくつかの戦略を使用することができます

提供長い接続タイムアウトkeepalive_timeout

「接続要求のkeepalive_requestsの最大数は、長い送信可能を提供しました

FIFOキューをブロック

 

 并发连接:是同时对一个域名发起多个长连接,用数量来解决质量的问题。

浏览器限制连接次数,那就域名分片,就多开几个域名,比如shard1.chrono.com、shard2.chrono.com,而这些域名都指向同一台服务器www.chrono.com

Cookie : 生存周期 Expires和Max-Age

在JS脚本里可以用document.cookie来读写Cookie数据,属性“HttpOnly”会告诉浏览器,此Cookie只能通过浏览器HTTP协议传输,禁止其他方式访问

SameSite”可以防范“跨站请求伪造”(XSRF)攻击,设置成“SameSite=Strict”可以严格限定Cookie不能随着跳转链接跨站发送

还有一个属性叫“Secure”,表示这个Cookie仅能用HTTPS协议加密传输,明文的HTTP协议会禁止发送。明文的HTTP协议会禁止发送。但Cookie本身不是加密的,浏览器里还是以明文的形式存在。

おすすめ

転載: www.cnblogs.com/autointerface/p/11941745.html