Rumah php教程 PHP开发 深入理解HTTP协议及原理分析之缓存

深入理解HTTP协议及原理分析之缓存

Dec 12, 2016 am 11:26 AM
protokol 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响应。常见流程如下图所示:

20161031140826605.jpg

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。

见下图:

20161031140826605.jpg

https所用的端口号是443。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bermula dengan PHP: Protokol HTTP Bermula dengan PHP: Protokol HTTP May 22, 2023 am 08:06 AM

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

Perbincangan mendalam tentang kepentingan kod status protokol HTTP Perbincangan mendalam tentang kepentingan kod status protokol HTTP Feb 25, 2024 pm 11:06 PM

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

Analisis fungsi: Pengepala mesej protokol HTTP Analisis fungsi: Pengepala mesej protokol HTTP Feb 25, 2024 am 11:06 AM

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

Tafsiran terperinci sokongan protokol HTTP dan pengoptimuman prestasi pelayan proksi terbalik Nginx Tafsiran terperinci sokongan protokol HTTP dan pengoptimuman prestasi pelayan proksi terbalik Nginx Aug 04, 2023 pm 01:20 PM

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 Pembangunan pekerja: Bagaimana untuk melaksanakan sistem pemprosesan fail kelompok berdasarkan protokol HTTP Nov 07, 2023 pm 12:16 PM

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

Protokol HTTP dan kod status dalam PHP Protokol HTTP dan kod status dalam PHP May 11, 2023 pm 04:28 PM

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 Pembangunan pekerja: Bagaimana untuk melaksanakan pelayan web berdasarkan protokol HTTP Nov 07, 2023 am 10:51 AM

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: Menangani Situasi Capaian Larangan dalam Ralat HTTP Analisis Kod Status 403: Menangani Situasi Capaian Larangan dalam Ralat HTTP Feb 18, 2024 pm 05:44 PM

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

See all articles