Php - Obținerea unei țări în vizită de la adresele lor IP. Definirea unui robot de căutare de către User-Agent în PHP

În acest articol ne vom uita la 2 scripturi Contor de vizitatoriîn php conceput pentru a număra numărul de vizitatori ai site-ului dvs., dintre care unul interacționează cu Baza de date MySQL, iar al doilea pur și simplu scrie date despre vizitatorii online într-un fișier text și preia informații de acolo, adică fără o bază de date.

Scripturile sunt foarte ușor de instalat și să ne uităm la fiecare dintre ele separat.

Contor vizitatori în php cu baza de date MySQL

Primul script în sine va crea tabele pentru baza MySQL (dacă nu ați făcut acest lucru singur) și constă dintr-o clasă principală (fișier) care salvează toate datele din baza de date și afișează următoarele pe pagini:

Opțiuni de ieșire

  • Câți vizitatori sunt în prezent online;
  • Câți vizitatori au vizualizat această pagină astăzi;
  • Câți vizitatori unici au venit pe site-ul tău pe zi;
  • Numărul total de vizitatori;
  • adresa IP pentru fiecare vizitator;
  • Ora și data reală.

În arhiva descărcată veți avea, așa cum am scris mai sus, un singur fișier smart_counter.class.php cu clasa principală și trebuie să încărcați acest fișier în hosting în directorul principal.

$this->db_server = "localhost"; // Numele dvs. de gazdă $this->db_username = "rădăcină"; // Autentificare din baza de date $this->db_password = "1234"; // Parola bazei de date $this->db_name = "name_bd"; // Numele bazei de date

Și ultimul pas pentru a instala contorul de vizitatori:
În locul de pe pagina dvs. unde intenționați să afișați contorul de vizitatori, scrieți acest cod.

inc_interval = 86400;
$sc->db_server = "localhost"; // Numele dvs. de gazdă $sc->db_username = "rădăcină"; // Autentificare din baza de date $sc->db_password = "1234"; // Parola bazei de date $sc->db_name = "name_bd"; // Numele bazei de date $sc->db_main_table = "sc_main";
$sc->db_users_table = "sc_users";
$sc->update_counter();

echo sprintf ("Numărul total de vizite: %d

"; } ?>

", $sc->get_total_visits()); echo sprintf("Vizite pe această pagină: %d

Script vizitatorii online fără MySQL

Script PHP - Vizitatorii online se deosebesc de precedentul doar prin faptul că nu folosește o bază de date, ci funcționează cu fișiere text și, în același timp, practic nu creează încărcare pe serverul tău. De asemenea, folosește o clasă PHP care scrie și șterge simultan date din aceste fișiere și afișează informațiile necesare despre vizitatorii site-ului tău.

Acest script afișează următoarele informații despre vizitatorii site-ului:

Datele vizitatorilor

  • Câte gazde sunt în total;
  • Câte Gazde astăzi;
  • Câte hit-uri în total?
  • Câte hit-uri pentru azi;
  • Câți vizitatori au fost în total;
  • Câți vizitatori sunt online în acest moment.
persoana cu experienta 10 noiembrie 2013 la 13:29

Statistici ale vizitelor site-ului web fără servicii terțe

  • Dezvoltare site

Bună ziua! Cred că toată lumea își amintește încă cât de recent, după defecțiuni minore pe serverele Google, multe site-uri s-au prăbușit și ele.
De fapt, această situație se poate întâmpla cu orice serviciu de pe Internet, așa că este mai bine să joci în siguranță încă o dată.
Pentru multe organizații, statisticile privind traficul pe site-uri web influențează activitatea marketerilor, care determină ce orașe au o cerere mai mare pentru produse etc. Dar dacă serviciul de statistică folosit pe site eșuează temporar?

Există o soluție: utilizați propriul script pentru înregistrarea vizitelor pe site împreună cu servicii terțe.

Scriptul nostru va consta din trei fișiere:

  • stat.php - inclus în fiecare pagină care trebuie monitorizată
  • stat.log - fișierul în care va fi înregistrat istoricul de navigare
  • seestats.php - fișier pentru vizualizarea statisticilor
De fapt, orice nume de fișier poate fi folosit.

Fișier stat.php
$col_zap) array_shift($linii); $linii = $data."|".$bot."|".$ip."|".$acasă."|\r\n"; file_put_contents($fișier, $linii); ?>

Pentru a evita dezgroparea manuală a fișierului stat.log de fiecare dată, să creăm un fișier pentru a afișa statisticile vizitelor pe site:
Fișierul Seestats.php

sizeof($fișier)) ( $col=sizeof($fișier); ) echo „Latest ".$col." vizite pe site:"; ?> sizeof($fișier)-$col; $si--) ( $șir=explode("|",$fișier[$si]); $q1[$si]=$șir; // data și ora $q2[$si]=$șir; // nume bot $q3[$si]=$string // ip bot $q4[$si]=$string // ecou adresa de vizitare; "; ecou" "; ecou" "; ecou" ";) ecou"
Ora și data Datele vizitatorilor IP/proxy Adresa URL vizitată
„.$q1[$si]”.„.$q2[$si]”.„.$q3[$si]”.„.$q4[$si]”.
"; ecou"
Vezi cele mai recente 100 500"; ecou" 1000 vizite."; ecou "
Vedere toate vizitele.
"; ecou ""; ?>

Asta este! Acum, chiar dacă internetul live sau Yandex.Metrica se blochează, puteți afla oricând cine v-a vizitat site-ul!

Etichete: php, statistici, script


Adesea, pe site-uri web puteți vedea expresia, acest site este în prezent vizualizat de atât de mulți oameni, sau chiar o listă de vizitatori înregistrați în prezent pe site. Acest serviciu se numește de obicei „Lista de vizitatori online”. Având în vedere că adresa IP a unui vizitator se poate modifica dinamic sau, dimpotrivă, mai mulți vizitatori pot accesa Internetul de la aceeași adresă IP, sesiunile sunt folosite pentru a număra vizitatorii unici pe site. Să creăm un tabel sesiuneîn care vom stoca identificatori unici de sesiune (SID) alocați vizitatorilor.

Masă sesiune

CREATE TABLE session (id_session tinytext NOT NULL, putdate datetime NOT NULL implicit "0000-00-00 00:00:00", user tinytext NOT NULL) TYPE=MyISAM;

Tabelul are trei câmpuri - id_session, un câmp în care este plasat SID-ul sesiunii, un câmp putdate pentru a stoca ora la care un vizitator a accesat paginile site-ului și un câmp utilizator, pe care nu îl vom folosi, dar în care puteți stoca numele de utilizator. dacă aveți o autorizare de sistem și doriți să faceți diferența între oaspeți și utilizatori autorizați. Se presupune că numele de utilizator este plasat în elementul de matrice superglobal $_SESSION["user"] - dacă sunteți interesat de autorizarea în PHP, acesta poate fi găsit la

La începutul fiecărei pagini a site-ului care va participa la înregistrarea vizitatorilor, următorul cod trebuie plasat folosind designul.

Script pentru înregistrarea vizitatorilor în tabel sesiune

// Începeți sesiunea sesiune_start(); // Obține un ID de sesiune unic$id_session = session_id(); include "config.php"; // Verificați dacă acest id este prezent în baza de date$interogare = "SELECT * FROM session WHERE id_session = "$id_session "" ; $ses = mysql_query($interogare); "" ); if(! $ses ) exit(// Dacă există deja o sesiune cu același număr, // înseamnă că utilizatorul este online - actualizați ora ultimei // vizite if(mysql_num_rows($ses)>0) ($interogare ="UPDATE session SET putdate = NOW(), user = " $_SESSION [ utilizator ] " WHERE id_session = " $id_session "" ; mysql_query($interogare);) // În caz contrar, dacă nu există un astfel de număr - vizitatorul tocmai a introdus // - plasăm un nou vizitator în tabel else( $interogare =
„INSERT INTO session VALUES(” "

$id_session ", NOW(), " $_SESSION [ utilizator ] ")" ;

"
if(! mysql_query ($interogare)) ( echo $query . " // Vom presupune că utilizatorii care au lipsit // timp de 20 de minute au părăsit resursa - le ștergem // id_session din baza de date$interogare = „ȘTERGERE DIN sesiune WHERE putdate< NOW() - INTERVAL "20" MINUTE" ; mysql_query($interogare); ?>

Protocolul HTTP nu este un protocol de sesiune, așa că putem înregistra doar accesul vizitatorilor la paginile site-ului – cât timp după aceea vizitatorul va citi pagina – numai Dumnezeu știe – nu vom putea obține această informație. Prin urmare, vom presupune că, dacă un vizitator nu accesează paginile site-ului mai mult de 20 de minute, a plecat și poate fi eliminat din tabel. sesiune.

Acum tot ce trebuie să facem este să afișăm conținutul tabelului sesiune sau numărați numărul de vizitatori la acesta.

Afișarea conținutului tabelului sesiune

// Stabiliți o conexiune la baza de date include "config.php"; // Afișează numele tuturor vizitatorilor ale căror înregistrări sunt // în tabelul de sesiuni$query = "SELECT * FROM sesiune" ; $ath = mysql_query($interogare); "

if(! $ath ) exit(

"
); Eroare la interogarea tabelului de sesiune// Dacă există cel puțin cineva, afișați tabelul if(mysql_num_rows ($ath )> 0 ) ( echo " " ; while($author = mysql_fetch_array ($ath )) (// Dacă vizitatorul nu este înregistrat // afișează „anonim” în locul numelui său "" anonim altfel ecou"
if(empty($author [ „utilizator”])) echo
;
" ; } ?>

" . $autor [ "utilizator" ]. " " ; ) ecou " Pentru a stabili o conexiune la baza de date, avem nevoie de un fișier de configurare

config.php " ; ) ecou "

, următorul cuprins. Fișierul de configurare //////////////////////////////////////////////////////////////////// //////// // 2003-2011 (C) Studio SoftTime IT (http://www.site) //////////////////// /// ///////////////////////////////////// // serverul mașinii locale este acum setat$dblocation = "localhost" ; // Numele bazei de date, pe găzduire sau pe mașina locală$dbname = "dbase" ; // Stabiliți o conexiune la baza de date// Numele de utilizator al bazei de date "

$dbuser = "rădăcină" ; // și parola sa $dbpasswd = "" ;

"
); } $dbcnx = @mysql_connect ($dblocation, $dbuser, $dbpasswd); dacă (! $dbcnx ) ( ieșire( "

Serverul bazei de date este momentan indisponibil, astfel încât pagina nu poate fi afișată corect.

"
); } // Selectați baza de date dacă (! @ mysql_select_db ($dbname , $dbcnx )) ( exit(

Baza de date este momentan indisponibilă, astfel încât pagina nu poate fi afișată corect.

// Setați codificarea conexiunii

@mysql_query("SETĂ NUMELE "cp1251""); ?>

Aspect pentru a comanda și a fi plătit.

Curs gratuit „Site pe WordPress”

Vrei să stăpânești CMS-ul WordPress?

Obțineți lecții despre design și aspectul site-ului web pe WordPress.

Învață să lucrezi cu teme și să tăiați machete.

Curs video gratuit despre desenarea unui site web, aspect și instalare pe CMS WordPress!

* Treceți mouse-ul peste pentru a întrerupe derularea.

Înapoi Înainte

Contor de vizite pe site-ul de tip Fă-ți singur în PHP și MySQL

În această lecție vom analiza cum puteți face un simplu contor de vizite pentru site-ul dvs. Vom implementa exemplul în PHP folosind o bază de date.

Este clar că acum există multe soluții gata făcute - pornind de la internet liveŞi mail.ru, și se termină cu Yandex.Metrica.

Toate aceste servicii oferă o mulțime de informații statistice diferite, dar sunt totuși rugat periodic să vă spun cum puteți crea, chiar și un foarte simplu, dar propriul contor de vizite pe site.

Nu vom înregistra zeci și sute de parametri, așa cum fac monștri precum Yandex. Vă voi arăta principiul creării unui contor și, dacă doriți, puteți adăuga mai multe funcții acolo dacă este necesar.

Toate sursele folosite în timpul lecției sunt atașate la arhivă împreună cu lecția video.

Puteți urmări această lecție chiar acum sau o puteți descărca pe computer folosind link-ul de mai sus.

Sub videoclip veți găsi o versiune text prescurtată pentru acest tutorial video.



Scurtă prezentare generală a lecției (vezi videoclipul pentru toate detaliile):

Ce ne trebuie?

1. 4 fișiere aproape identice care joacă rolurile diferitelor pagini ale site-ului (index.php, contacts.php, about.php și uslugi.php)
2. Fișier .htaccess pentru setarea codificării serverului la UTF-8
3. folderul css cu fișierul de stiluri. Există câteva stiluri simple pentru paginile noastre scrise acolo.
4. Inc folder cu fișiere incluse. Sunt trei dintre ele:
- fisier de conectare la baza de date
- Un fișier care va fi conectat în locul potrivit pe pagină pentru a afișa contorul pe ecran
- Scriptul principal, care descrie logica contorului
5. Dosarul admin cu fișierul index.php. În acest fișier putem vizualiza statisticile vizitelor pe site


Cum funcționează?

1. Creați un proiect în Denver (sau pe un server real)

Am creat o gazdă în Denver numită statistică, și în dosar www Toate fișierele site-ului sunt localizate.


2. Creați o bază de date

Să trecem la crearea unei baze de date unde vom avea toate informațiile. Să o sunăm statisticiși creați două tabele în el.


Dacă nu doriți să creați manual tabele, puteți utiliza dump-ul bazei de date (anexat în materiale suplimentare) și puteți rula o interogare SQL în fila SQL după crearea bazei de date.


Aşa, creați primul tabel. Să o sunăm ips- va stoca identificatorii de adrese IP și adresele IP ale vizitatorilor site-ului.

Tabelul va avea 2 câmpuri:

Id_id (int (12), cheie primară, auto-increment) - identificatorul adresei IP;
- ip_address (varchar (50)) - adresa IP a vizitatorului.

Tabelul va avea 4 câmpuri:

visit_id (int (12), primary key, autoincrement) - identificator de vizită;
data (data) - data vizitei;
hosts int(12) - numărul de gazde (vizite unice);
views int(12) - numărul de accesări (afișări de pagină).

Ca rezultat, baza de date va arăta astfel:


3. Dispoziții de bază

Acum că baza de date a fost creată, putem trece la câteva puncte din care vom construi atunci când scriem scriptul:

1. Vom identifica un vizitator unic după adresa IP. 1 adresă IP este egală cu 1 vizitator unic (gazdă).

2. Vizitele în decurs de 1 zi cu aceeași adresă IP nu măresc numărul de vizitatori unici pentru ziua respectivă.

3. Orice vizită pe site în timpul zilei mărește contorul de vizite (hit) cu 1 (indiferent dacă este făcută de la o adresă IP unică pentru ziua de azi sau nu).

4. Vom stabili începutul zilei astfel: atunci când o persoană vizitează site-ul, vom verifica dacă există vizite orice intrări pentru data de astăzi. Dacă nu, atunci vizitatorul actual este primul vizitator din această zi.

5. O dată pe zi, tabelul cu adrese IP este șters, astfel încât să putem introduce în el adresele IP ale zilei curente și să colectăm statistici privind vizitele de astăzi pe site (acest lucru se face tocmai după ce am descoperit că prima persoană din ziua curentă vizitează) .

4. Scriem fișiere de pagină de site (index.php, contacts.php, about.php și uslugi.php)

Deoarece toate cele 4 fișiere de pagină ale site-ului sunt aproape identice, vom lua în considerare doar pagina index.php. Celelalte trei pagini ( contacts.php, about.php și uslugi.php) diferă doar în etichete titluŞi h2, în care sunt scrise alte nume de pagini.

Deci dosarul index.php:

Acasă

Pagina de start

La început includem fișierul count.php, care conține toată logica contorului.

În partea de jos, înainte de eticheta de închidere corp includem fisierul show_stats.php, care conține codul contor în sine, adică Acest fișier formează deja direct ceea ce vom afișa pe ecran.

Aceste. Pe fiecare pagină a site-ului vom afișa un contor, care va indica câți vizitatori și vizualizări unice au fost astăzi. Vom analiza acest fișier mai târziu.

5. Scrieți un fișier de stil (style.css)

#nav( padding-left: 0px; ) #nav li( display: inline; margin: 5px; padding: 5px; font-family: Verdana; font-size: 15px; background-culoare: #F1EEF7; chenar: 1px argintiu solid ; ) #nav li a( text-decor: none; ) #nav li:hover (culoare de fundal: #8D93EF; )

Stilurile, după cum puteți vedea, sunt foarte simple. Setăm indentările, dimensiunea fontului și fontul, eliminăm sublinierea pentru link-uri din meniu și schimbăm culoarea de fundal atunci când treceți mouse-ul peste un element din listă.

În plus, folosim proprietatea afişa cu sens în linie astfel încât meniul nostru să capete mai degrabă un aspect orizontal decât vertical.

6. Scrieți fișierul .htaccess

Pentru orice eventualitate, creați un fișier în rădăcina site-ului .htaccess cu o singură directivă pentru a seta codarea UTF-8:

AddDefaultCharset UTF-8

Acest pas poate fi inutil dacă codificarea serverului a fost deja setată la această valoare.

7. Conectați-vă la baza de date (db.php)

În dosar db.php sunt indicati parametrii de conectare la baza de date - gazda, numele bazei de date, login si parola.

În același fișier, conexiunea se realizează direct, iar identificatorul conexiunii este introdus într-o variabilă $db. În cazul unei erori, se afișează un mesaj care afirmă că este imposibil să se conecteze la baza de date.

7. Scrieți fișierul principal cu logic (count.php)

Mai jos este codul său, pe care îl vom analiza pe scurt:

Deci mai întâi includem fișierul bd.php, care asigură comunicarea cu baza de date, după care începem să scriem codul principal.

În primul rând, obținem din matricea globală $_SERVER Adresa IP a vizitatorului și salvați data curentă.

Avem nevoie de data pentru a verifica dacă au existat deja vizite astăzi sau nu - acesta este exact următorul nostru pas.

În primul caz (dacă nu au fost încă vizite) iar vizitatorul actual este primul în această zi, ștergem tabelul cu adrese IP.

Avem nevoie de asta pentru a începe să colectăm statistici pentru astăzi.

În plus, introducem adresa IP a vizitatorului curent în baza de date, iar în baza de date pentru ziua curentă introducem una în câmpurile vizualizări și vizitatori unici, deoarece aceasta este prima persoană care a adus primul hit și prima gazdă de până acum.

A doua opțiune este atunci când au existat deja vizite astăzi.

În acest caz, verificăm dacă adresa IP de la care provine apelul este deja în baza de date, deoarece trebuie să luăm în considerare doar adrese IP unice într-o zi.

Dacă se dovedește că o astfel de adresă IP a existat deja astăzi, atunci adăugăm +1 la valoarea actuală a vizualizărilor și nimic mai mult.

Dacă o astfel de adresă IP nu a existat încă astăzi (adică, vizitatorul este unic), atunci îi salvăm IP-ul în baza de date și actualizăm valorile atât ale numărului de vizitatori unici, cât și ale vizualizărilor (adică, creștem valorile ​a ambelor câmpuri câte unul).

8. Scrieți un fișier care afișează contorul pe pagini (show_stats.php)

Fişier show_stats.php folosim pe fiecare dintre pagini pentru a afișa informații statistice. Iată codul lui:

";

După cum puteți vedea, acest fișier este mult mai simplu.

Aici pur și simplu obținem statistici privind data curentă din baza de date, după care folosim cheile matricei rezultate $rând pentru a afișa numărul de vizitatori unici (câmp gazdă) și vizualizări (câmp vederi).

9. Creați un fișier „admin” (index.php în folderul admin)

În acest fișier vom prezenta statisticile vizitelor sub formă de tabel.

În plus, implementăm capacitatea de a obține statistici pentru o anumită perioadă de timp. Mai jos este codul fișierului index.php:

Statistici

Pentru azi

În ultima săptămână

Parametru nevalid!

"; ) // Specificați codificarea în care vor fi primite informațiile din baza de date @mysqli_query ($db, "set character_set_results = "utf8""); // Primiți date din baza de date, sortându-le după dată în ordine inversă numărul de bucăți de interval $ res = mysqli_query($db, "SELECT * FROM `visits` ORDER BY `date` DESC LIMIT $interval" // Generați rezultatul rândurilor de tabel într-o buclă while ($row = mysqli_fetch_assoc($); res)) ( ecou " "; } } ?>
Data Vizitatori unici Vizualizări
" . $row["data"] ." " . $row["gazde"] ." " . $row["vizualizări"] ."

Mai întâi ne conectăm la bază. Apoi creăm două link-uri cu parametri care ne vor permite, când facem clic pe ei, să primim date pentru un anumit interval de timp (în exemplu: pentru 1 zi și pentru 1 săptămână).

Verificăm și matricea globală $_GET pentru prezența parametrului pe care îl trecem ( interval) și, dacă valoarea acestui parametru nu este un număr, afișăm un avertisment corespunzător.

Dacă totul este în regulă, atunci facem o cerere către baza de date, preluând toate înregistrările din aceasta, sortate după dată în ordine inversă în numărul de bucăți specificat în parametru interval.

După aceasta începem ciclul în timp ce iar în el formăm rândurile tabelului, afișând elementele matricei rezultate în celulele lor $rând (data, gazdeŞi vederi), rezultând o listă a tuturor vizitelor pentru perioada specificată.

Dacă prezentarea scurtă a textului nu vă este complet clară, atunci studiați versiunea completă a lecției în format video pe această pagină de mai sus.

Acest cod PHP va ajuta la determinarea cine a vizitat site-ul - un robot de căutare sau un utilizator obișnuit. Dacă treceți o variabilă funcției, atunci, dacă este un robot de căutare, numele robotului de căutare va fi scris în ea.

Această funcție va verifica dacă vizitatorul este un robot motor de căutare

funcția isBot(&$botname = "") ( $bots = array("rambler","googlebot","aport","yahoo","msnbot","turtle","mail.ru","omsktele", "yetibot","picsearch","sape.bot","sape_context","gigabot","snapbot","alexa.com", "megadownload.net","askpeter.info","igde.ru", "ask.com","qwartabot","yanga.co.uk", "scoutjet","pagini similare","oozbot","shrinktheweb.com","aboutusbot","followsite.com", "dataparksearch", "google-sitemaps","appEngine-google","feedfetcher-google", "liveinternet.ru","xml-sitemaps.com","agama","metadatalabs.com","h1.hrn.ru", "googlealert.com","seo-rus.com","yaDirectBot","yandeG","yandex", "yandexSomething","Copyscape.com","AdsBot-Google","domaintools.com", "Nigma" .ru","bing.com","dotnetdotcom"); foreach ($bot ca $bot) ( if (stripos($_SERVER["HTTP_USER_AGENT"], $bot) !== false) ( $botname = $bot return true ) return false;

funcția isBot (& $botname = "" ) (

$bots = matrice (

"rambler" , "googlebot" , "aport" , "yahoo" , "msnbot" , "turtle" , "mail.ru" , "omsktele" ,

"yetibot" , "picsearch" , "sape.bot" , "sape_context" , "gigabot" , "snapbot" , "alexa.com" ,

"megadownload.net" , "askpeter.info" , "igde.ru" , "ask.com" , "qwartabot" , "yanga.co.uk" ,

„scoutjet” , „similarpages” , „oozbot” , „shrinktheweb.com” , „aboutusbot” , „followsite.com” ,

„dataparksearch” , „google-sitemaps” , „appEngine-google” , „feedfetcher-google” ,

"liveinternet.ru" , "xml-sitemaps.com" , "agama" , "metadatalabs.com" , "h1.hrn.ru" ,

„googlealert.com” , „seo-rus.com” , „yaDirectBot” , „yandeG” , „yandex” ,

„yandexSomething” , „Copyscape.com” , „AdsBot-Google” , „domaintools.com” ,

„Nigma.ru” , „bing.com” , „dotnetdotcom”

foreach ($bot ca $bot) (

if (stripos ($_SERVER [ "HTTP_USER_AGENT" ] , $bot ) !== false ) (

$botname = $bot ;

returnează adevărat;

return false;

Se pare că această funcție acoperă majoritatea intrărilor care pot fi în User-Agent al diferitelor motoare de căutare.

Desigur, aceasta nu este o metodă 100%, deoarece User-Agent poate fi schimbat. Dar, în opinia mea, motoarele de căutare reale nu fac asta. Cu excepția cazului în care cineva vrea să se prefacă a fi un robot de căutare. Pe scurt, folosește această metodă în funcție de cazul tău.

Pe Internet, se oferă și să se determine prin IP, după masca de adresă. Se presupune că acest spațiu de adrese IP este alocat pentru serverele Google sau pentru alte sisteme. Dar, după cum înțelegeți, această metodă este hemoroidală. Pentru că trebuie să urmăriți listele și măștile de adrese IP.

Ei bine, puțin offtopic. Cazul meu în care am aplicat toate acestea a fost următorul - am vrut să organizez o cerere-răspuns folosind starea 304 „Nemodificat”, data modificării și toate acestea când lucrez cu scripturi. Am făcut toată această prelucrare în scripturi. În cazurile necesare, dacă, de exemplu, știrea nu a fost modificată, atunci a fost trimis starea 304 și totul a fost ok. Dar!... Pe paginile dinamice aveam părți din pagină care s-au schimbat și ar fi greșit să dau un statut 304 pentru întreaga pagină, utilizatorul ar primi date vechi, sau mai corect în acest caz, ar fi mai bine să spuneți că utilizatorul ar vedea pagina veche și nu va primi una nouă, deși Unele părți ale paginii au fost deja actualizate. Aceasta este problema cu paginile dinamice și cu stările 304. Pe scurt, am făcut următoarea concluzie - am renunțat la această funcționalitate pentru utilizatorii obișnuiți, dar am lăsat această funcționalitate pentru motoarele de căutare, doar folosind această funcție de detectare a robotului de căutare pentru testare. În principiu, mi-am atins rezultatul, deoarece inițial cel mai important lucru a fost să realizez această funcționalitate pentru motoarele de căutare. Pentru ca motoarele de căutare să indexeze mai repede site-ul și să nu piardă timpul obținând conținutul unei pagini neschimbate.

Cu toate acestea, acest „nu a pierdut timpul obținând conținutul unei pagini nemodificate” poate fi realizat prin compilarea unui sitemap sub formă de XML, pe care motorul de căutare îl va descărca și va analiza data modificării paginii. Dar am avut sarcina de a o face în aceste două moduri. Și da, această sarcină a venit de la oameni SEO :)

Bine, am început într-un fel și, dacă nu mă opresc, probabil că voi ajunge complet diferit. Probabil că nu am mai scris nimic pe blog de mult timp.

Pentru asta ma inclin :)