深入理解HTTP协议及原理分析之缓存
3.2 缓存的实现原理
3.2.1什么是Web缓存
WEB缓存(cache)位于Web服务器和客户端之间。
缓存会根据请求保存输出内容的副本,例如html页面,图片,文件,当下一个请求来到的时候:如果是相同的URL,缓存直接使用副本响应访问请求,而不是向源服务器再次发送请求。
HTTP协议定义了相关的消息头来使WEB缓存尽可能好的工作。
3.2.2缓存的优点
减少相应延迟:因为请求从缓存服务器(离客户端更近)而不是源服务器被相应,这个过程耗时更少,让web服务器看上去相应更快。
减少网络带宽消耗:当副本被重用时会减低客户端的带宽消耗;客户可以节省带宽费用,控制带宽的需求的增长并更易于管理。
3.2.3与缓存相关的HTTP扩展消息头
Expires:指示响应内容过期的时间,格林威治时间GMT
Cache-Control:更细致的控制缓存的内容
Last-Modified:响应中资源最后一次修改的时间
ETag:响应中资源的校验值,在服务器上某个时段是唯一标识的。
Date:服务器的时间
If-Modified-Since:客户端存取的该资源最后一次修改的时间,同Last-Modified。
If-None-Match:客户端存取的该资源的检验值,同ETag。
3.2.4客户端缓存生效的常见流程
服务器收到请求时,会在200OK中回送该资源的Last-Modified和ETag头,客户端将该资源保存在cache中,并记录这两个属性。当客户端需要发送相同的请求时,会在请求中携带If-Modified-Since和If-None-Match两个头。两个头的值分别是响应中Last-Modified和ETag头的值。服务器通过这两个头判断本地资源未发生变化,客户端不需要重新下载,返回304响应。常见流程如下图所示:
3.2.5 Web缓存机制
HTTP/1.1中缓存的目的是为了在很多情况下减少发送请求,同时在许多情况下可以不需要发送完整响应。前者减少了网络回路的数量;HTTP利用一个“过期(expiration)”机制来为此目的。后者减少了网络应用的带宽;HTTP用“验证(validation)”机制来为此目的。
HTTP定义了3种缓存机制:
1)Freshness:允许一个回应消息可以在源服务器不被重新检查,并且可以由服务器和客户端来控制。例如,Expires回应头给了一个文档不可用的时间。Cache-Control中的max-age标识指明了缓存的最长时间;
2)Validation:用来检查以一个缓存的回应是否仍然可用。例如,如果一个回应有一个Last-Modified回应头,缓存能够使用If-Modified-Since来判断是否已改变,以便判断根据情况发送请求;
3)Invalidation: 在另一个请求通过缓存的时候,常常有一个副作用。例如,如果一个URL关联到一个缓存回应,但是其后跟着POST、PUT和DELETE的请求的话,缓存就会过期。
3.3 断点续传和多线程下载的实现原理
HTTP协议的GET方法,支持只请求某个资源的某一部分;
206 Partial Content 部分内容响应;
Range 请求的资源范围;
Content-Range 响应的资源范围;
在连接断开重连时,客户端只请求该资源未下载的部分,而不是重新请求整个资源,来实现断点续传。
分块请求资源实例:
Eg1:Range: bytes=306302- :请求这个资源从306302个字节到末尾的部分;
Eg2:Content-Range: bytes 306302-604047/604048:响应中指示携带的是该资源的第306302-604047的字节,该资源共604048个字节;
客户端通过并发的请求相同资源的不同片段,来实现对某个资源的并发分块下载。从而达到快速下载的目的。目前流行的FlashGet和迅雷基本都是这个原理。
多线程下载的原理:
下载工具开启多个发出HTTP请求的线程;
每个http请求只请求资源文件的一部分:Content-Range: bytes 20000-40000/47000;
合并每个线程下载的文件。
3.4 https通信过程
3.4.1什么是https
HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容请看SSL。
见下图:
https所用的端口号是443。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP ialah bahasa pengaturcaraan yang digunakan secara meluas di Internet, dan protokol HTTP ialah protokol penting yang menyokong Internet. Untuk pemula, mempelajari protokol HTTP adalah langkah penting dalam memulakan pengaturcaraan PHP. Artikel ini akan memperkenalkan kandungan khusus protokol HTTP daripada konsep asas, kaedah permintaan, kod status dan aplikasi praktikal protokol HTTP untuk membantu pemula lebih memahami dan menguasai protokol HTTP serta membangunkan aplikasi PHP dengan lebih berkesan. Konsep asas protokol HTTP protokol HTTP ialah HyperText

Tafsiran mendalam tentang kod status protokol HTTP: Mengapa kod status adalah penting untuk pembangunan tapak web Dengan perkembangan pesat Internet, pembangunan laman web menjadi semakin penting. Dalam pembangunan laman web, protokol HTTP memainkan peranan penting. Ia mentakrifkan spesifikasi komunikasi antara penyemak imbas dan pelayan untuk memindahkan data melalui permintaan dan respons. Kod status HTTP adalah sebahagian daripada proses ini dan digunakan untuk menunjukkan pemprosesan permintaan. Artikel ini akan memberikan penjelasan yang mendalam tentang peranan dan kepentingan kod status protokol HTTP. Kod status HTTP ialah nombor tiga digit

Protokol HTTP ialah salah satu protokol lapisan aplikasi yang paling biasa digunakan dalam Internet moden Ia berdasarkan model pelayan-pelanggan dan digunakan untuk menghantar data antara klien dan pelayan. Protokol HTTP berkomunikasi melalui permintaan dan respons, dan pengepala mesej adalah bahagian yang sangat penting dalam protokol HTTP, yang digunakan untuk menghantar metadata dalam permintaan dan respons. Artikel ini akan meneroka peranan pengepala protokol HTTP. Pertama, pengepala protokol HTTP boleh digunakan untuk menyampaikan maklumat berkaitan permintaan. Apabila klien menghantar permintaan kepada pelayan, medan dalam pengepala mesej

Pelayan proksi terbalik Nginx ialah pelayan web berkuasa yang bukan sahaja mengendalikan permintaan dan respons HTTP, tetapi juga menyediakan sokongan protokol HTTP dan pengoptimuman prestasi. Dalam artikel ini, kami akan menerangkan secara terperinci sokongan protokol HTTP dan pengoptimuman prestasi pelayan proksi terbalik Nginx dan memberikan beberapa contoh kod. 1. Protokol HTTP menyokong pemprosesan permintaan Pelayan proksi terbalik Nginx boleh menerima permintaan HTTP daripada pelanggan dan memajukannya ke pelayan bahagian belakang. Untuk setiap permintaan, Nginx akan

Pembangunan Pekerja: Bagaimana untuk melaksanakan sistem pemprosesan fail kelompok berdasarkan protokol HTTP, contoh kod khusus diperlukan Dengan perkembangan Internet dan teknologi digital, pemprosesan data telah menjadi semakin penting, terutamanya dalam perusahaan. Kadangkala, kita perlu memproses sejumlah besar fail, seperti gambar, video, audio, dsb. Pada masa ini, operasi manual bukan sahaja memakan masa dan intensif buruh, tetapi juga terdedah kepada kesilapan. Bagaimana untuk melaksanakan sistem pemprosesan fail kelompok adalah topik yang akan dibincangkan dalam artikel ini. Workerman ialah soket berprestasi tinggi yang dibangunkan dalam PHP

PHP ialah bahasa skrip bahagian pelayan yang digunakan secara meluas yang digunakan untuk membina aplikasi web. Dalam aplikasi web, protokol HTTP dan kod status adalah pengetahuan asas yang diperlukan, dalam artikel ini kita akan meneroka pengetahuan asas protokol HTTP dan kod status dalam PHP. Protokol HTTP ialah protokol untuk menghantar hiperteks dan digunakan secara meluas dalam pembangunan web. Melalui protokol HTTP, pelayar web dan pelayan web berinteraksi melalui Internet Pelayar web menghantar permintaan HTTP ke pelayan web

Pembangunan Pekerja: Bagaimana untuk melaksanakan pelayan Web berdasarkan protokol HTTP, contoh kod khusus diperlukan Pengenalan: Dengan perkembangan pesat Internet, pembangunan Web telah menjadi lebih penting. Asas untuk menyediakan perkhidmatan Web adalah pelayan Web. Workerman ialah rangka kerja pembangunan PHP berprestasi tinggi yang bukan sahaja boleh membangunkan pelayan komunikasi rangkaian, tetapi juga melaksanakan pelayan web berdasarkan protokol HTTP. Artikel ini akan memperkenalkan penggunaan Workerman untuk membangunkan perkhidmatan Web HTTP yang mudah

Analisis Kod Status 403: Cara Menangani Ralat Terlarang dalam Protokol HTTP Pengenalan: Dalam dunia dalam talian, apabila kita menyemak imbas halaman web atau menghantar permintaan, kita sering menghadapi pelbagai ralat. Salah satunya ialah kod status 403, yang menunjukkan ralat dilarang akses. Artikel ini akan menganalisis ralat 403 dan menyediakan beberapa strategi mengatasi untuk membantu pembaca menangani masalah sedemikian dengan lebih baik. 1. Maksud dan sebab kod status 403 Kod status 403 ialah kod status ralat klien dalam protokol HTTP Ia menunjukkan bahawa pelayan memahami permintaan pelanggan, tetapi
