මෙම පිටුව අවසන් වරට වෙනස් කරන ලද්දේ 1576. රසවත් තොරතුරු රාශියක් ඇති බ්ලොග් අඩවියකි.... සෙවුම් යන්ත්‍ර මගින් සුචිගත කිරීම වේගවත් කරන්න

HTTP ශීර්ෂකය අවසන් වරට වෙනස් කරන ලදී (අවසාන වෙනස්කම්)සේවාදායකයාට කාලය මාරු කරයි අවසාන වෙනසලේඛනය (වෙබ් පිටුව). සේවාදායකයා (බ්‍රවුසරය හෝ සෙවුම් රොබෝ) ශීර්ෂය යවයි " නම්-වෙනස් කළ-එතැන් සිට" සහ පිටුව අවසන් වරට වෙනස් කළ දිනය ගැලපෙන්නේ නම්, සේවාදායකය විසින් ශීර්ෂකය ආපසු ලබා දෙයි " 304 වෙනස් කර නැත" සහ පිටුව පූරණය නොවේ. අවසන් වරට වෙනස් කරන ලද වේලාව වෙනස් නම් (හෝ අවසන් වරට වෙනස් කළ ශීර්ෂකය වින්‍යාස කර නොමැති නම්) - සේවාදායකය විසින් ශීර්ෂකය ආපසු ලබා දෙයි " 200 හරි" සහ පිටුව පූරණය කරයි. එනම්, පිටුව නැවත පූරණය කර හැඹිලිය යාවත්කාලීන කිරීම වෙනුවට, සේවාදායකයාට ලැබෙන්නේ පමණි ශීර්ෂකය 304. සේවාදායකයා ගමනාගමනය සුරකින අතර, සේවාදායකය අඩු දත්ත යවයි - අන්‍යෝන්‍ය ඉතිරිකිරීම්.

අවසාන වශයෙන් වෙනස් කරන ලද ශීර්ෂකය සැකසීමෙන් හෝ වඩාත් නිවැරදිව, අඩවි සුචිගත කිරීම වේගවත් කිරීම සඳහා ගෙන එන ප්‍රතිලාභ ගැන කතා කිරීමට නොවේ නම් මෙම ලිපිය ඇත්තේ මන්ද? වෙබ් අඩවියක පිටු 10 ක් 1000 ට වඩා වේගයෙන් සුචිගත වනු ඇතැයි අනුමාන කිරීම අපහසු නැත. පිටු පැටවීම ප්‍රශස්ත කිරීමට ඔබට ඉඩ සලසන එම මූලධර්මයම සුචිගත කිරීම සඳහා ද ක්‍රියා කරයි. සෙවුම් යන්ත්‍රයකට නව පිටු 10ක් සොයා ගැනීමට පිටු 1000ක් සුචිගත කිරීමට අවශ්‍ය නොවේ. අවසන් වරට වෙනස් කිරීම සඳහා ස්තූතියි, අපි රොබෝවරයා සඳහා නව පිටු (හෝ යාවත්කාලීන කළ ඒවා) පමණක් තබමු. රොබෝවරයා වෙබ් අඩවියට පැමිණෙන අතර මුලින්ම අවශ්ය දේ ගනී, පසුව අනෙක් සියල්ල.

අවසන් වරට වෙනස් කරන ලද ශීර්ෂකය සැකසීම

ඔබගේ http ශීර්ෂ නිවැරදි බවට වග බලා ගන්න. විශේෂයෙන්, වැදගත් වන්නේ සේවාදායකයා විසින් "වෙනස් කළහොත්- සිට" ඉල්ලීමට ලබා දෙන ප්රතිචාරයේ අන්තර්ගතයයි. අවසන් වරට වෙනස් කරන ලද ශීර්ෂය ලේඛනය අවසන් වරට වෙනස් කළ නිවැරදි දිනය සඳහන් කළ යුතුය. සේවාදායකය විසින් ලේඛනයේ අවසන් වරට වෙනස් කරන ලද දිනය ප්‍රදර්ශනය නොකළද, ඔබේ වෙබ් අඩවිය සුචිගත කෙරේ. කෙසේ වෙතත්, මෙම අවස්ථාවේදී, ඔබ පහත සඳහන් කරුණු සලකා බැලිය යුතුය: - සෙවුම් ප්රතිඵල ඔබේ වෙබ් අඩවියේ පිටු අසල දිනය නොපෙන්වයි; - දිනය අනුව වර්ග කිරීමේදී, වෙබ් අඩවිය බොහෝ පරිශීලකයින්ට නොපෙනේ; - අවසාන සුචිගත කිරීමේ සිට අඩවි පිටුව යාවත්කාලීන කර තිබේද යන්න පිළිබඳ තොරතුරු රොබෝවරයාට ලබා ගැනීමට නොහැකි වනු ඇත. රොබෝවෙකුට එක් සංචාරයකදී අඩවියකින් ලැබෙන පිටු ගණන සීමිත බැවින්, වෙනස් කළ පිටු අඩුවෙන් නැවත සුචිගත කරනු ලැබේ. ඔබගේ වෙබ් සේවාදායකය "If-Modified-Since" HTTP ශීර්ෂයට සහය දක්වන බවට වග බලා ගන්න. මෙම ශීර්ෂකය වෙබ් සේවාදායකයට එය අවසන් වරට බඩගා ගිය අවස්ථාවේ සිට වෙබ් අඩවියේ අන්තර්ගතය වෙනස් වී ඇත්ද යන්න Google හට පැවසීමට ඉඩ සලසයි. මෙම විශේෂාංගයට සහය වීම පොදු කාර්ය සහ කලාප පළල භාවිතය අඩු කරයි.

අවසන් වරට වෙනස් කළ ශීර්ෂය යැවීමට සහ If-Modified-Since නිවැරදිව හසුරුවන්නේ කෙසේද යන්න පිළිබඳ උදාහරණ මෙන්න.

ස්ථිතික html පිටු සඳහා අවසන් වරට වෙනස් කරන ලද මෙටා සකසන්නේ කෙසේද

php හි Last-Modified සකසන්නේ කෙසේද

= $LastModified_unix) ( ශීර්ෂකය($_SERVER["SERVER_PROTOCOL"] . " 304 වෙනස් කර නැත"); පිටවීම; ) ශීර්ෂකය("අවසන් වරට වෙනස් කරන ලද්දේ: ". $LastModified); ?>

අවසන් වරට නවීකරණය කරන ලද .htaccess වින්‍යාස කරන්නේ කෙසේද

RewriteRule .* - RewriteRule .* -

අවසන් වරට නවීකරණය කරන ලද nginx + php වින්‍යාස කරන්නේ කෙසේද

ස්ථානය ~ .php$ (... if_modified_fcence; fastcgi_pass fcgi; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /<путь >/web$fastcgi_script_name; ... fastcgi_pass_header අවසන් වරට වෙනස් කරන ලදී; fastcgi_params ඇතුළත්; )

අවසන් වරට වෙනස් කරන ලද බව පරීක්ෂා කරන්න

ශීර්ෂකය සේවාදායකයා වෙත යැවීමේදී වින්‍යාස කර ඇති විට, එය හානියක් නොවේ අවසන් වරට වෙනස් කරන ලද්දේ පරීක්ෂා කරන්නනිවැරදි බව සඳහා. ඔබට සබැඳි සේවා හරහා ඔබගේම හෝ තෙවන පාර්ශ්ව වෙබ් අඩවියකින් අවසන් වරට වෙනස් කරන ලද ඒවා පරීක්ෂා කළ හැක.

නැතහොත් අවසන් වරට වෙනස් කරන ලද ශීර්ෂය නිවැරදි ලෙස සැකසීම සඳහා ඔබේම චෙක්පතක් කරන්න:

අවසන් වරට වෙනස් කරන ලද ශීර්ෂකය සැකසීමසහ If-Modified-Since ශීර්ෂකය සැකසීම ඕනෑම විශාල හෝ කුඩා වෙබ් අඩවියක් සඳහා අතිශයින්ම ප්‍රයෝජනවත් වනු ඇත. වෙබ් අඩවි පිටු සැකසීමේ වේගය සැලකිය යුතු විය හැක. විශේෂයෙන්ම joomla, wordpress, modx වැනි ජනප්‍රිය CMS සඳහා සාපේක්ෂව සරල සැකසුම ගැටළු ඇති නොකරනු ඇත. සූදානම් කළ විසඳුම් තිබේ.

වෙබ් අඩවි සෙවුම් යන්ත්‍ර ප්‍රශස්තකරණය (SEO) ක්ෂේත්‍රය තුළ විවිධ මිථ්‍යාවන් රාශියක් පවතී. සමහර ඒවා පදනමක් ඇත, සමහර ඒවා කොහෙන්වත් ආවේ නැත. මෙම සටහනේදී අපි ඒවායින් එකක් දෙස බලමු - අවසන් වරට නවීකරණය කරන ලද ප්‍රතිචාර ශීර්ෂය භාවිතා කරමින්.

කලකට පෙර "ප්‍රවර්ධනය කරන ලද වෙබ් අඩවි සඳහා වෙබ් චිත්‍රාගාර සඳහා නිර්දේශ කිරීම" යන මාතෘකාවෙන් යුත් ලේඛනයක් අපට ලැබුණි. සහ "නිර්දේශ" වලින් එකක් පහත දැක්වේ:

ප්‍රතිනිර්මාණය කිරීමෙන් පසුව හෝ නව වෙබ් අඩවියක් සංවර්ධනය කිරීමෙන් පසුව, අඩවි පිටු (අවසන් වරට වෙනස් කරන ලද) අවසන් වෙනස් කළ දිනය සඳහන් කළ යුතුය.

හි අඩවියට එක් කිරීමට PHP තොරතුරුපිටු වල අවසාන වෙනස් කිරීමේ දිනය ආරම්භයේදීම අවශ්‍ය වේ ප්රභව කේතයසෑම පිටුවකටම පිටපතක් ඇතුල් කරන්න


ශීර්ෂකය("අවසන් වරට වෙනස් කරන ලද්දේ: " . දිනය("D, d M Y H:i:s", time()) . " GMT");
?>

මෙම සටහන ලිවීමට මා පෙලඹවූයේ මෙම වල් විකාර, මෙම සම්පූර්ණ විකාර සහ අවංකවම පිස්සු කේතයයි. මෙහිදී මම අවසන් වරට වෙනස් කළ දේ කුමක්ද, එය අවශ්‍ය වන්නේ ඇයි සහ බ්‍රව්සර් සහ සෙවුම් යන්ත්‍ර එය භාවිතා කරන ආකාරය පැහැදිලි කිරීමට උත්සාහ කරමි.

අවසන් වරට වෙනස් කරන ලද දේ

සේවාදායකයා වෙත තොරතුරු සම්ප්‍රේෂණය කිරීමේදී (බ්‍රවුසර් හෝ සෙවුම් රොබෝ), වෙබ් සේවාදායකය අමතර දත්ත රාශියක් වාර්තා කරයි. ඒවා බ්‍රව්සර් කොන්සෝලය තුළ දැකිය හැකිය, උදාහරණයක් ලෙස:

නිවැරදි ප්‍රතිචාර ශීර්ෂ නිකුත් කිරීමට සේවාදායකය වින්‍යාස කරන්න (උදාහරණයක් ලෙස, පිටුව නොපවතියි නම්, 404 දෝෂයක් නිකුත් කරන්න, සහ If-Modified-Since ඉල්ලීමක් ලැබුනේ නම්, පසුව පිටුව වෙනස් කර නොමැති නම් 304 කේතයක් නිකුත් කරන්න. ඉල්ලීමෙහි දක්වා ඇති දිනය).

කොන්දේසි සහිත GET ඉල්ලීමකට සේවාදායකය කිසිදු ආකාරයකින් ප්‍රතිචාර නොදක්වන්නේ නම්, එය සාමාන්‍ය ඉල්ලීමකට වඩා වෙනස් නොවන බව ඔබට පෙනෙනු ඇත. එනම්, වැරදි ලෙස සෑදී ඇති (hello Integgate!) වත්මන් වේලාව සමඟ අවසන් වරට වෙනස් කරන ලද ශීර්ෂකය කිසිසේත් අවශ්‍ය නොවේ!

එසේනම් අවසන් වරට නවීකරණය කිරීම අවශ්‍යද නැද්ද?

සාමාන්යයෙන් අවශ්යයි. නමුත් එය ඕනෑම කාර්යභාරයක් ඉටු කරන ශීර්ෂය නොවන බව තේරුම් ගැනීම වැදගත්ය, නමුත් වෙබ් අඩවිය විසින් සම්පූර්ණයෙන්ම ක්රියාත්මක කළ යුතු සමස්ත කොන්දේසි සහිත ඉල්ලීම් දර්ශනය වේ. මෙම අවස්ථාවෙහිදී අපට අඩවි සුචිගත කිරීමේ ඉහළ වේගයක් ලැබෙනු ඇත.

නමුත් බොහෝ විට මෙය සූදානම් කළ CMS එකක ක්‍රියාත්මක කිරීම ඉතා අපහසුය. මෙය CMS හි කේතයට සැලකිය යුතු වෙනස්කම් අවශ්‍ය විය හැකිය.

CMS ගණනාවක් සඳහා පිටු හැඹිලිගත කිරීම සක්‍රීය කිරීමෙන් මෙය සාක්ෂාත් කරගත හැකිය. CMS විසින් පිටු හැඹිලිගත කරන්නේ නම්, අත්‍යවශ්‍යයෙන්ම ස්ථිතික ගොනු නිර්මාණය කර සේවය කරන්නේ නම්, වෙබ් සේවාදායකයම කොන්දේසි සහිත ඉල්ලීම්වලට නිවැරදිව ප්‍රතිචාර දක්වයි. උදාහරණයක් ලෙස, WordPress හි මෙය WP Super Cache ප්ලගිනය භාවිතයෙන් ලබා ගත හැක:

අපි එය ක්‍රියාවෙන් පරීක්ෂා කරමු. මම මෙම ප්ලගිනය සක්‍රීය කර, බ්‍රව්සරය නිර්නාමික ආකාරයෙන් විවෘත කර එකම පිටුව සඳහා ඉල්ලීම් දෙකක් කළෙමි. දෙවන පිළිතුර නිවැරදි බව පැහැදිලිව පෙනේ - 304 වෙනස් කර නැත:

නිගමනයක් වෙනුවට

මේ අනුව, අපි අවසන් වරට වෙනස් කරන ලද ශීර්ෂය සමඟ කටයුතු කර ඇත. පළමුව, එය ලේඛනය සැබවින්ම වෙනස් කළ දිනය සහ වේලාව පිළිබඳ තොරතුරු ලබා දිය යුතුය. දෙවනුව, If-Modified-Since ශීර්ෂකය සමඟ කොන්දේසි සහිත ඉල්ලීමකට සේවාදායකයේ ප්‍රතිචාරය අතිශයින්ම වැදගත් වේ.

හොඳයි, අන්තර්ජාලය ක්‍රියා කරන ආකාරය පිළිබඳ මූලික කරුණු නොදන්නා SEO වලට අඩුවෙන් සවන් දෙන්න.

වෙබ් අඩවියක් එහි නිසි ක්‍රියාකාරිත්වය සහ සාර්ථක ප්‍රවර්ධනය සඳහා ප්‍රශස්ත කිරීමේ එක් අදියරක් වන්නේ සේවාදායකයේ ප්‍රශස්තකරණයයි. අනෙකුත් කරුණු වලට "අවසන් වරට වෙනස් කරන ලද" ඉල්ලීමට නිවැරදි සේවාදායක ප්‍රතිචාරය සැකසීම ඇතුළත් වේ. මෙම පරාමිතිය නිවැරදිව සැකසීම වෙබ් අඩවියේ පැටවීමේ වේගය වැඩි කළ හැකි අතර සෙවුම් රොබෝවරුන් විසින් එහි සුචිගත කිරීම කෙරෙහි ධනාත්මක බලපෑමක් ඇති කරයි.

අවසන් වරට වෙනස් කරන ලද්දේ කුමක්ද සහ එය අවශ්‍ය වන්නේ ඇයි?

නමට අනුව, අවසන් වරට නවීකරණය කරන ලද ශීර්ෂකය සේවාදායකයාට (අඩවි නරඹන්නාට) වෙබ් අඩවියේ විශේෂිත පිටුවක් අවසන් වරට වෙනස් කළ අවස්ථාව ගැන කියයි. සෙවුම් රොබෝවෙකු අඩවි නරඹන්නෙකු ලෙස ක්‍රියා කරන්නේ නම් සහ ඉල්ලුම් කරන ලද ලේඛනයට හෝ පිටුවට අවසන් වරට නවීකරණය කරන ලද ප්‍රතිචාරය වෙබ් අඩවියේ (සේවාදායකයේ) වින්‍යාස කර නොමැති නම් (හෝ වැරදි ලෙස වින්‍යාස කර ඇත්නම්), සෙවුම් රොබෝට අන්තර්ජාලයේ සියලුම පිටු සුචිගත කිරීම හැර වෙනත් විකල්පයක් නොමැත. එක් එක් සංචාරයේදී සම්පත් නැවත නැවතත්, එමගින් සත්කාරක අඩවියේ පිහිටා ඇති සේවාදායකයේ යම් බරක් නිර්මාණය කරයි. පිටු ගණන සිය ගණනක් හෝ දහස් ගණනක් නම් කුමක් කළ යුතුද? සේවාදායකයේ ලක්ෂණ සහ හැකියාවන් මත පදනම්ව, සත්කාරක පැත්තේ යම් ආකාරයක දෝෂයක් ඇතිවීමේ හැකියාවක් ඇත. මීට අමතරව, සෙවුම් රොබෝවරයාට "වරකට" සුචිගත කර ඇති පිටු ගණනට සීමාවක් ඇති බව සැලකිල්ලට ගත යුතුය, එසේ නොමැති නම් නිවැරදි සැකසුම්අවසන් වරට වෙනස් කරන ලද ශීර්ෂකය, අපි වෙනස් නොකළ පිටු රොබෝ විසින් සුචිගත කිරීමට අවදානමක් ඇත, නමුත් අපට අවශ්‍ය නව පිටු එසේ නොවේ.

HTML Hypertext Transfer Protocol විස්තර කරන RFC 2616 පිරිවිතර මත පදනම්ව, සේවාදායකයාට "If-Modified-Since" ශීර්ෂයක් යැවීමෙන් යම් දිනක සිට පිටුවක් වෙනස් වී ඇත්ද යන්න සේවාදායකයෙන් "ඇසිය හැක". ඉල්ලා සිටින පිටුව වෙනස් වී නොමැති නම්, සේවාදායකය "304 වෙනස් නොකළ" ශීර්ෂයක් ලබා දෙන අතර බ්‍රවුසරය පිටුව පූරණය නොකරන අතර වෙබ් සේවාදායකය වැඩි දත්ත එවන්නේ නැත. එසේ නොමැතිනම් (පෙර ඉල්ලීමේ සිට අඩවි පිටුව වෙනස් වී ඇත්නම්), සේවාදායකය "200 හරි" ප්‍රතිචාරයක් සහ කෙලින්ම පිටුවේ කේතය ආපසු ලබා දෙනු ඇත.

ඉහත කරුණු වලට අමතරව, අපි Yandex හි නිර්දේශ සඳහන් කරමු: "අවසාන සුචිගත කිරීමෙන් පසු වෙබ් අඩවියේ පිටුව යාවත්කාලීන කර තිබේද යන්න පිළිබඳ තොරතුරු රොබෝවරයාට ලබා ගැනීමට නොහැකි වනු ඇත. රොබෝවරයාට එක් සංචාරයකදී වෙබ් අඩවියෙන් ලැබෙන පිටු ගණන සීමිත බැවින්, වෙනස් කළ පිටු අඩු වාර ගණනක් නැවත සුචිගත කරනු ලැබේ.

මුළු:"අවසන් වරට වෙනස් කරන ලද" ශීර්ෂයේ වැදගත් අරමුණ වන්නේ අඩවි නරඹන්නාට දැනුම් දීම සහ සෙවුම් රොබෝඕනෑම ලේඛනයක අවසාන වෙනස් කිරීමේ දිනය.

ඔබ අවසන් වරට වෙනස් කළ දේ නිවැරදිව වින්‍යාස කිරීමට අවශ්‍ය වන්නේ ඇයි?

අවසන් වරට නවීකරණය කරන ලද සේවාදායක ප්‍රතිචාරය නිවැරදිව වින්‍යාස කිරීමෙන්, අපට කිහිපයක් ලබා ගත හැක ධනාත්මක ප්රතිඵලඅපගේ වෙබ් අඩවිය සඳහා:

  • පුද්ගලයින් සඳහා අඩවි පිටු පැටවීමේ වේගය වැඩි වේ:පිටුව දැනටමත් පරිශීලකයා විසින් නරඹා ඇත්නම් සහ ඊළඟ සංචාරයේදී පිටුව වෙනස් වී නොමැති නම්, අමුත්තන්ගේ බ්‍රවුසරය පිටුව නැවත පූරණය නොකරනු ඇත, නමුත් එහි හැඹිලි පිටපත පෙන්වනු ඇත;
  • සත්කාරක වේදිකාවේ (සේවාදායකයේ) බර අඩු වේ:මෙම මෙහෙයුම් ඇල්ගොරිතම සමඟ, වෙබ් අඩවිය නරඹන්නාට වෙනස් කළ පිටු පරිමාව පමණක් මාරු කිරීමේ අවශ්‍යතාවය හේතුවෙන් සේවාදායකය ඉතා අඩුවෙන් පටවනු ලැබේ;
  • සෙවුම් ප්‍රතිඵලවල අවසාන ලේඛනයේ දිනය දර්ශනය වේ:"නැවුම්" දිනයක් ප්රදර්ශනය කරන්නේ නම්, මෙම කරුණ ඔබේ වෙබ් අඩවියට අමුත්තන් ආකර්ෂණය කර ගත හැකිය;
  • දිනය අනුව වර්ග කරන්න:සෙවුම් ප්‍රතිඵලවල දිනය අනුව වර්ග කිරීම සඳහා අඩවි පිටු සහභාගි වනු ඇත;
  • සෙවුම් රොබෝවරුන් විසින් වෙබ් අඩවිය සුචිගත කිරීම සැලකිය යුතු ලෙස වේගවත් කර ඇත:බඩගා ගිය පිටු දිනය පිළිබඳව ඔබේ වෙබ් අඩවියේ ඉක්මන් ප්‍රතිචාරය හේතුවෙන්, පැරණි (දැනටමත් සුචිගත කර ඇති) පිටු “නැවුම්” ලේඛනවලට මඟ පාදමින් “පසෙකට දමනු ලැබේ”. වෙබ් අඩවියක් ප්‍රවර්ධනය කිරීමේදී මෙම කරුණ වඩාත් වැදගත් වේ, මන්ද... ඉහළ සුචිගත කිරීමේ වේගය සෙවුම් රොබෝවරුන් අතර වෙබ් අඩවිය කෙරෙහි විශ්වාසයේ මට්ටම වැඩි කරයි.

Last-modified නිවැරදිව වින්‍යාස කර ඇත්දැයි පරීක්ෂා කරන්නේ කෙසේද?

වින්‍යාස කරන ලද අවසන්-විශෝධිත සේවාදායක ප්‍රතිචාරයේ නිරවද්‍යතාවය (සහ ඇත්ත වශයෙන්ම පැවැත්ම) ඔබට පරීක්ෂා කළ හැකි එක් සේවාවක් නම්, අවසන් වරට වෙනස් කරන ලද.

ආදාන ක්ෂේත්රයේ ඔබ ඔබේ වෙබ් අඩවියේ හෝ විශේෂිත පිටුවක ලිපිනය ලිවිය යුතු අතර "පරීක්ෂා කරන්න" බොත්තම මත ක්ලික් කරන්න. සේවාවේ ප්‍රතිඵලය වනුයේ "අවසන් වරට වෙනස් කරන ලද" සහ "304 වෙනස් නොකළ" ශීර්ෂයන් සඳහා වන ඉල්ලීමකට ඔබේ වෙබ් අඩවියේ ප්‍රතිචාරය නිරූපණය කිරීමයි. එවැනි චෙක්පතක උදාහරණයක්:

අවසන් වරට වෙනස් කරන ලද පිහිටුවීම

PHP හි අවසන් වරට නවීකරණය කරන ලද HTTP ශීර්ෂ ප්‍රතිචාරය ක්‍රියාත්මක කිරීම දෙස බලමු.

අන්තර්ජාලයේ ඔබට බොහෝ විට අවසන් වරට නවීකරණය කිරීම සඳහා පහත නිර්දේශ සොයා ගත හැක:

මට ප්‍රකාශ කිරීමට අවශ්‍යයි: “අපට මේ ආකාරයේ හොකී අවශ්‍ය නැත!” ඒ ඇයි කියලා අපි බලමු. පරිශීලක ඉල්ලීමකට ප්‍රතිචාර වශයෙන්, කාර්යය gmdateඑය අප වෙත ආපසු ලබා දෙනු ඇත වර්තමාන දිනයග්‍රීන්විච් මධ්‍යන්‍ය වේලාව (GMT). පරිශීලකයෙකුගෙන් හෝ සෙවුම් රොබෝවරයෙකුගෙන් කරන සෑම ඉල්ලීමක් සමඟම මෙය සිදුවනු ඇත - සේවාදායකය හරියටම එය ආපසු ලබා දෙනු ඇත වර්තමාන දිනය. සෙවුම් යන්ත්‍ර ඔබේ වෙබ් අඩවියට පිවිසෙන සෑම අවස්ථාවකම, ඉල්ලූ පිටුව යාවත්කාලීන කර ඇති බව ඔවුන් දකිනු ඇත. මෙය "ප්‍රයෝජනවත්" කිහිප වතාවක් පමණක් විය හැකිය ... ටික වේලාවකට පසු, සෙවුම් යන්ත්‍රය එය "රැවටීම" බව වටහා ගන්නා අතර ඔබේ වෙබ් අඩවිය කෙරෙහි ඇති විශ්වාසය නැති වනු ඇත. ඒ අනුව, එවැනි ක්රියාත්මක කිරීමක් අපට නොගැලපේ.

උදව් සඳහා ඉහත සම්පත වෙත හැරෙමු. last-modified.com. එය PHP හි අවසන් වරට නවීකරණය කරන ලද HTTP ශීර්ෂය ක්‍රියාත්මක කිරීමක් ද ඉදිරිපත් කරයි. එය මෙසේ පෙනේ:

$LastModified_unix = 1294844676;

$IfModifiedSince = අසත්‍ය;



නම් ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) (
පිටවීම;
}

අපි බලමු කොහොමද මේ code එක වැඩ කරන්නේ කියලා. විචල්ය $LastModified_unixආකෘතියෙන් අතින් සකස් කරන්න Unix කාල මුද්දරය(Unix යුගයේ ආරම්භයේ සිට ගත වූ තත්පර ගණන - 1970 ජනවාරි 1 සිට).

කාර්යය gmdateවත්මන් GMT කාලය ආකෘතියෙන් ලබා දෙයි දිනය, DD සඳු වර්ෂය HH:MM:SS GMT.

ඊළඟට: පිටුව අවසන් වරට වෙනස් කළ කාලය ලබා ගන්න, තිබේද යන්න පරීක්ෂා කරන්න නම්-වෙනස් කළ-එතැන් සිට, එකක් තියෙනවා නම් අපි දෙනවා 304 වෙනස් කර නැතසහ පිටපත නවත්වන්න. එසේ නොමැතිනම් අපි ශීර්ෂයක් ජනනය කරමු අවසන් වරට වෙනස් කරන ලදීසහ සම්පූර්ණ පිටුව භාර දෙන්න.

ඉහත විකල්පය තුළ කාලය නියම කිරීමට යෝජනා කර ඇත $LastModified_unixඅතින්. නමුත් වෙබ් අඩවියේ පිටු ගොඩක් තිබේ නම් කුමක් කළ යුතුද? මෙය සිදු කිරීම සඳහා, අපි ස්ක්‍රිප්ට් එක ටිකක් "නවීකරණය" කරමු, එහි පළමු පේළිය පමණක් ප්‍රතිස්ථාපනය කරමු:

$LastModified_unix = strtotime(දිනය("D, d M Y H:i:s", filectime($_SERVER["SCRIPT_FILENAME"])));
$LastModified = gmdate("D, d M Y H:i:s \G\M\T", $LastModified_unix);
$IfModifiedSince = අසත්‍ය;

නම් (ඉස්සෙට්($_ENV["HTTP_IF_MODIFIED_SINCE"]))
$IfModifiedSince = strtotime(substr($_ENV["HTTP_IF_MODIFIED_SINCE"], 5));

නම් (ඉස්සෙට්($_SERVER["HTTP_IF_MODIFIED_SINCE"]))
$IfModifiedSince = strtotime(substr($_SERVER["HTTP_IF_MODIFIED_SINCE"], 5));

නම් ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) (
ශීර්ෂකය($_SERVER["SERVER_PROTOCOL"] . " 304 වෙනස් කර නැත");
පිටවීම;
}

ශීර්ෂකය("අවසාන වෙනස් කරන ලදී: ". $LastModified);

යාවත්කාලීන කළ අනුවාදයේ, කේතයේ පළමු පේළිය දිනයේ පෙළ නිරූපණය පරිවර්තනය කරයි ඉංග්රීසි භාෂාවආකෘතියේ ලේබලයකට Unix කාල මුද්දරය, මේ අනුව වත්මන් අඩවි පිටුවේ ස්වයංක්‍රීයව ගණනය කරන ලද වෙනස් කිරීමේ කාලය භාවිතා කරයි.

සියල්ල සූදානම්! දැන් අපිට කරන්න තියෙන්නේ ලැබෙන code එක කොටසට paste කරන එක ... වෙබ් අඩවියේ සෑම පිටුවක්ම සහ සෙවුම් රොබෝවරුන් විසින් අධිවේගී පිටු පැටවීම සහ සුචිගත කිරීම භුක්ති විඳින්න.

අවසන් වරට වෙනස් කරන ලද පිහිටුවීමට අපි ඔබට උදවු කරමු!

සරල ඇමතුමකින් ආරම්භ කරන්න T-Design හි! අපගේ දුරකථන අංකය වේ 8 499 340-17-82 - මාදිලියේ ක්රියා කරයි නොනවතින, එවිට ඔබට ඔබේ වෙබ් අඩවිය සංවර්ධනය කිරීමේ සහ සහාය දීමේ ගැටළු විසඳීමට ඔබ උනන්දු වන තොරතුරු ඉක්මනින් ලබා ගත හැක. නැතිනම් ලියන්න විද්යුත් තැපෑල. අපි සියලු ප්රශ්න සහ උපදෙස් දෙන්නෙමු අපි ප්‍රශස්ත ගාස්තුව තෝරා ගනිමුඔබේ සමාගම සඳහා.

වාක්‍ය ඛණ්ඩය

වෙනස් කළහොත් - සිට: , ::GMT

විධාන

"සඳු", "අඟහරුවාදා", "බදාදා", "බහු", "සිකු", "සෙන", හෝ "සූර්ය" (අවස්ථා සංවේදී) වලින් එකක්. ඉලක්කම් 2 දින අංකය, උදා. "04" හෝ "23". "ජන", "පෙබරවාරි", "මාර්තු", "අප්රේල්", "මැයි", "ජුනි", "ජූලි", "අගෝස්තු", "සැප්", "ඔක්තෝබර්", "නොවැම්බර්", "දෙසැම්බර්" වලින් එකක් ( විෂය සංවේදී). ඉලක්කම් 4 වසර අංකය, උදා. "1990" හෝ "2016". ඉලක්කම් 2 පැය අංකය, උදා. "09" හෝ "23". ඉලක්කම් 2 මිනිත්තු අංකය, උදා. "04" හෝ "59". ඉලක්කම් 2ක දෙවන අංකය, උදා. "04" හෝ "59". GMT

ග්‍රීන්විච් කාලය. HTTP දිනයන් සෑම විටම GMT හි ප්‍රකාශ කරනු ලැබේ, කිසි විටෙකත් දේශීය වේලාවෙන්.

උදාහරණ

වෙනස් කළහොත් - 2015 ඔක්තෝබර් 21 බදාදා 07:28:00 GMT

පිරිවිතර

පිරිවිතර ශීර්ෂය
RFC 7232, 3.3 කොටස: වෙනස් කළහොත්-සිට Hypertext Transfer Protocol (HTTP/1.1): කොන්දේසි සහිත ඉල්ලීම්

බ්‍රවුසර ගැළපුම

මෙම පිටුවේ ඇති ගැළපුම් වගුව ව්‍යුහගත දත්ත වලින් ජනනය කර ඇත. ඔබ දත්ත වලට දායක වීමට කැමති නම්, කරුණාකර https://github.com/mdn/browser-compat-data පරීක්ෂා කර අපට ඇදීමේ ඉල්ලීමක් එවන්න.

GitHub හි අනුකූලතා දත්ත යාවත්කාලීන කරන්න

ඩෙස්ක්ටොප්ජංගම
Chromeදාරයෆයර්ෆොක්ස්අන්තර්ජාල ගවේෂකයඔපෙරාසෆාරිAndroid webviewAndroid සඳහා ChromeAndroid සඳහා Firefoxඇන්ඩ්රොයිඩ් සඳහා ඔපෙරාiOS මත Safariසැම්සුන් අන්තර්ජාලය
නම්-වෙනස් කළ-එතැන් සිටChrome සම්පූර්ණ සහාය ඔව්Edge Full support 12Firefox සම්පූර්ණ සහාය ඔව්IE සම්පූර්ණ සහාය ඔව්ඔපෙරා පූර්ණ සහාය ඔව්සෆාරි සම්පූර්ණ සහාය ඔව්WebView Android පූර්ණ සහාය ඔව්Chrome Android පූර්ණ සහාය ඔව්Firefox Android පූර්ණ සහාය ඔව්ඔපෙරා ඇන්ඩ්රොයිඩ් සම්පූර්ණ සහාය ඔව්Safari iOS සම්පූර්ණ සහාය ඔව්Samsung අන්තර්ජාල Android පූර්ණ සහාය ඔව්

වර්ඩ්ප්‍රෙස් සඳහා ශීර්ෂක සිට අවසන් වරට වෙනස් කරන ලද සහ වෙනස් කළහොත්

ස්වල්ප දෙනෙක් HTTP ශීර්ෂයන් කෙරෙහි අවධානය යොමු කරති අවසන් වරට වෙනස් කරන ලදීසහ නම්-වෙනස් කළ-එතැන් සිටඔබේ වෙබ් අඩවිය ප්‍රශස්ත කරන විට, නමුත් නිෂ්ඵලයි! සෙවුම් රොබෝවරයාගේ අවසාන සංචාරයේ සිට වෙනස් නොවූ පිටුව, 304 කේතයක් ආපසු ලබා දීම වැදගත් වේ, ඇත්ත වශයෙන්ම මෙම විශේෂිත පිටුව කිසිවක් සමඟ පරිපූරණය කර නොමැති බව පෙන්නුම් කරයි - ඔබ පෙළ සංස්කරණය කර හෝ අතිරේක කර නැත. , මෙම සටහනට අදහස් එකතු කර නැත, යනාදී ලෙස පී.

මෙම http ශීර්ෂකය අස්ථානගත වී ඇත්නම්, Yandex හි, දිනය අනුව ප්රතිඵල වර්ග කිරීමේදී, වෙබ් අඩවිය බොහෝ පරිශීලකයින්ට නොපෙනේ.

ඔබ එය නිවැරදිව සැකසීම පමණක් නොව, ඔබ වාර්තාවක් සංස්කරණය කරන සෑම අවස්ථාවකම වර්තමාන දිනයට යාවත්කාලීන කිරීම වැදගත් වන්නේ එබැවිනි. මෙය අතින් සිදු කිරීමට අවශ්ය වනු ඇත.

අදහස් සමඟ එය සරලයි: අමුත්තෙක් අදහස් දැක්වීමක් එකතු කරන විට, පසුව විචල්යයේ $last_modified_timeඅදහස එකතු කළ වේලාව ස්වයංක්‍රීයව ඇතුළත් වේ - මෙය පිටුව අවසන් වරට වෙනස් කළ දිනය වේ.

අපට අවසන් වරට නවීකරණය කරන ලද සහ නම් වෙනස් කළ-සිට ශීර්ෂ අවශ්‍ය වන්නේ ඇයි?

1. සේවාදායකයා එවැනි කේතයක් යවන විට, පිටුවේ ඇති සියලුම PHP ස්ක්‍රිප්ට් ක්‍රියාත්මක කිරීම ආරම්භ නොවේ. පිටුව සෙවුම් හැඹිලියෙන් පටවා ඇති අතර, මෙය, ඔබ තේරුම් ගත් පරිදි, සේවාදායකයේ බර සැලකිය යුතු ලෙස අඩු කරයි, ඔබේ සත්කාරකයේ සතුටට බොහෝ සෙයින්, සහ අමුත්තන් සඳහා පිටු පැටවීම වේගවත් කරයි, එයද ශුභ ආරංචියකි.

මෙය සිදු වන්නේ කෙසේද?

අන්තර්ජාලය බඩගා යන විට, Google සහ Yandex මකුළුවන් ඔවුන්ගේ දත්ත ගබඩාවේ එක් එක් වෙබ් අඩවියේ පිටපතක් සුරකියි. මෙම පිටපත සංසන්දනය කිරීම සඳහා නියැදියක් ලෙස සේවය කරයි: සෑම දෙයක්ම තවමත් සමානද නැතහොත් වෙනස්කම් සිදුවී තිබේද? තවද අවසන් වරට නවීකරණය කරන ලද සහ වෙනස් කරන ලද නම්-Since ශීර්ෂයන් වින්‍යාස කර නොමැති නම් හෝ වැරදි ලෙස වින්‍යාස කර ඇත්නම්, වෙබ් අඩවියේ නව පිටු සුචිගත කර ඇති අතර, සෙවුම් යන්ත්‍ර හැඹිලියේ ප්‍රධාන පිටුව දිගු වේලාවක් යාවත්කාලීන නොවේ. පෝෂණය යාවත්කාලීන නොවේ.

නමුත් නිතර යාවත්කාලීන කරන ලද පිටු සඳහා (දිනකට බොහෝ වාරයක් යාවත්කාලීන කරන ලද ප්‍රවෘත්ති සංග්‍රහ, ක්‍රියාකාරීව අදහස් දක්වන බ්ලොග් ආදිය) එහි එක් අඩුපාඩුවක් ඇත: හැඹිලියේ තොරතුරු ඉතා ඉක්මනින් යල් පැන ගිය අතර පුද්ගලයෙකු, පිටුව නැවත පූරණය කළද, නවතම පුවත් නොපෙනේ. , නව අදහස් නොපෙනේ. නමුත් එය එතරම් නරක නැත. කරදරය වන්නේ එය සක්‍රිය කර ඇත්නම් මිස රොබෝවරයාට මෙය නොපෙනීමයි නිවැරදි මාතෘකාවඅවසන් වරට වෙනස් කරන ලදී.

ශීර්ෂකය("අවසන් වරට වෙනස් කරන ලද්දේ: ".gmdate("D, d M Y H:i:s ")."GMT");

ඔබේ වෙබ් අඩවිය නිතර යාවත්කාලීන වේ නම් (උදාහරණයක් ලෙස, ඔබේ පළ කිරීම් බොහෝ විට අදහස් දක්වා ඇත), ඔබට පහත ශීර්ෂ කට්ටලය සමඟ හැඹිලිගත කිරීම අබල කළ හැක:

ශීර්ෂකය("කල් ඉකුත් වේ: ".gmdate("D, d M Y H:i:s", time() + 7200)." GMT");

මෙයින් අදහස් කරන්නේ එක් එක් ඉල්ලීම සමඟ ගබඩා කර ඇති පිටපතෙහි වලංගු භාවය දෙවරක් පරීක්ෂා කළ යුතු බවයි.

බ්‍රව්සර්වල හැඹිලි වැඩ කරන්නේ කෙසේද?

no_cache ශ්‍රිතය ඇමතීමෙන් එය අක්‍රිය කර නොමැති නම්, ෆයර්ෆොක්ස් සහ IE හි පිටුව හැඹිලියේ ගබඩා කර ඇති අතර, පසුව ලැබෙන සියලුම ඉල්ලීම් සඳහා මෙම පිටුව ආපසු ලබා දෙනු ලැබේ.

පිටුව නැවුම් කිරීමට සහ නවතම අනුවාදය ලබා ගැනීමට, ඔබ යතුරු සංයෝජනය එබිය යුතුය Ctrl+F5, සුපුරුදු "යාවත්කාලීන" බොත්තම (F5) ක්රියා නොකරයි. මම කිව යුතුයි, IE හැඹිලියේ ලේඛන ඉතා දිගු කාලයක් ගබඩා කළ හැකිය.

ඔපෙරා හි, "Refresh" බොත්තම හෝ F5 යතුර එබීමෙන් හැඹිලි පිටුව ඉවත් කරනු ලැබේ. ඔපෙරා හි ඇති CRTL+F5 සංයෝජනය - සියලුම විවෘත ටැබ් නැවත පූරණය කරයි. ඔබට වැටහෙන පරිදි, ඔබ ඒවා ගොඩක් විවෘත කළහොත්, බලා සිටියදී රැවුල වැවිය හැකිය.

ඔබ no_cache ශ්‍රිතය සමඟ පිටු හැඹිලිගත කිරීම අක්‍රිය කරන්නේ නම්, ඔපෙරා සහ ෆයර්ෆොක්ස්, එවැනි පිටුවකට ප්‍රවේශ වන විට, If-Modified-Since ශීර්ෂය සමඟ යාන්ත්‍රණය භාවිතා කරන්න. මේ අනුව, හැඹිලිගත වීම සිදු වේ, නමුත් බ්‍රවුසරය සේවාදායකයෙන් පිටුව සැබවින්ම වෙනස් වී තිබේද නැද්ද යන්න අසයි - ප්‍රශ්නය ඉදිරිපත් කිරීමට මෙය නිවැරදි ක්‍රමයයි.

එබැවින්, ඔබ මෙම පරාමිතිය සැකසීමද සක්රිය කළ යුතුය. මෙම කාර්යයේ තේරුම මම විස්තර නොකරමි, මම ශීර්ෂ නිවැරදිව යවන කේතය පමණක් ලබා දෙන්නෙමි සහ මා සමඟ වැඩ කර ඇති බොහෝ සත්කාරක අඩවි වල ගැටුම් ඇති නොකරයි. මෙම නිර්මාණය ක්රියාත්මක වේ sweb.ru, eomy.net, timeweb.ru, fastvps.ru, startlogic.com

ශීර්ෂකය("කල් ඉකුත් වේ: ".gmdate("D, d M Y H:i:s", time() + 7200)." GMT");
ශීර්ෂකය ("හැඹිලි-පාලනය: හැඹිලි නැත, නැවත වලංගු කළ යුතුය");
$mt = ගොනු කාලය ($file_name);
$mt_str = gmdate("D, d M Y H:i:s ")."GMT";
නම් (ඉස්සෙට්($_SERVER["HTTP_IF_MODIFIED_SINCE"]) &&&
strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]) >= $mt)
(ශීර්ෂකය("HTTP/1.1 304 වෙනස් කර නැත");
මැරෙනවා;
}
ශීර්ෂකය ("අවසන් වරට වෙනස් කරන ලද්දේ: ".$mt_str);
echo $ text;
ශීර්ෂකය ("වෙනස්: පිළිගන්න-කේතනය");
ශීර්ෂකය("පිළිගන්න-කේතනය:gzip,deflate,sdch");
?>

ඉතින් ඔයාට කරන්න තියෙන්නේ මේ code එක copy කරලා file එකට add කරන එක විතරයි header.phpඔබේ තේමාව ඉහත . එම. මෙම කේතය ඉතිරි සියලුම කේතයට පෙර ගොනුවේ ඉහළම ස්ථානයේ ඇත


අවධානය!කිසිවක් එකතු කිරීමට පෙර, මෙම ගොනුව ඔබේ පරිගණකයේ සුරකින්න, එවිට ඔබට එවැනි ශීර්ෂ වින්‍යාසයකට ඉඩ නොදෙන්නේ නම් මුල් පිටපත ප්‍රතිසාධනය කළ හැක.

අපි ප්‍රතිඵලය පරීක්ෂා කරන්නේ Last-Modified සහ If-Modified-Since header checking සේවාව භාවිතා කරමිනි http://last-modified.com/ru/if-modified-since.html


  • ප්‍රති result ලය ධනාත්මක නම්, අපි අපේ නළලෙන් දහඩිය පිස දමා තේ පානය කරන්නෙමු.
  • ප්රතිඵලය ඍණාත්මක නම්, එම ඉදිකිරීම ගොනුවට එකතු කළ හැකිය index.phpඔබගේ වර්ඩ්ප්‍රෙස් මූලයේ (මෙය මට සත්කාරක timeweb.ru හි හමු විය). එලෙසම, එහි ඇති අන් සියල්ලටම වඩා. ඔබ යාවත්කාලීන කරන විට මේ ගැන අමතක නොකරන්න - දර්ශක ගොනුව එහි සම්මත ආකාරයෙන් නැවත ලියනු ලැබේ.

Voila! අවසන් වරට නවීකරණය කරන ලද සහ නම්-විකරණය කළ ශීර්ෂයන් නිවැරදිව සැකසීමෙන්, අපට ප්‍රසාද පොකුරක් ලැබුණි:

  • අපි පිටු පැටවීමේ වේගය වැඩි කළෙමු, එය ගූගල් රොබෝට වැදගත් වන අතර මිනිසුන්ට ප්‍රසන්න වේ.
  • අපි සේවාදායකයේ බර අඩු කළෙමු, එය සත්කාරක සමාගම සතුටු විය.
  • Yandex සෙවුම් ප්රතිඵලවල දිනය දර්ශනය වනු ඇත අවසාන යාවත්කාලීන කිරීමපිටු, සමහර අවස්ථාවලදී මිනිසුන්ට ඉතා වැදගත් වන අතර, එබැවින් වක්රව මෙය හැසිරීම් සාධක කෙරෙහි ධනාත්මක බලපෑමක් ඇති කරයි.
  • අපගේ වෙබ් අඩවියේ පිටු දිනය අනුව සෙවුම් යන්ත්‍ර වර්ග කිරීමට සම්බන්ධ වනු ඇත - ඔව්, ඔව්, උසස් පරිශීලකයින් භාවිතා කරන්නේ මෙයයි.
  • තවද, ඉහත සියල්ලේ ප්‍රතිවිපාකයක් ලෙස, සෙවුම් යන්ත්‍ර මගින් අපගේ වෙබ් අඩවිය සුචිගත කිරීම විශාල ලෙස වේගවත් වනු ඇත.



ඉහල