HTTP 304 Not Modified Status Code angiver et kommunikationsproblem mellem en brugers browser og et websites server. Hvis du eller dine brugere støder på denne statuskode på dit websted, kan den helt blokere adgang til dit indhold.
Da det kan være på serversiden eller klientsiden, kan det tage lidt arbejde at finde ud af kilden til problemet. Heldigvis er der flere idiotsikre teknikker til fejlfinding af det.
I dette indlæg vil vi diskutere HTTP-status codes og forklare, hvad HTTP 304-status code er. Derefter gennemgår vi dig gennem seks metoder, som du (eller dine besøgende) kan bruge til at rette det.
Lad os komme igang!
En introduktion til HTTP-statuskoder
For at forstå HTTP 304 hjælper det med først at forstå statuskoder. Kort sagt, hver gang du fremsætter en anmodning til din browser – f.eks. ved at få adgang til et bestemt websted – sendes en HTTP-statuskode mellem din browser og serveren for at udveksle information.
Der er mere end 40 forskellige statuskoder, der kan være involveret i denne kommunikation. Der er dog kun en håndfuld, som du sandsynligvis kommer på tværs af direkte. Når du støder på en statuskode, betyder det normalt, at noget er gået galt.
HTTP-statuskoder falder ind i en af fem kategorier, nummereret mellem 100’erne og 500’erne. Hver serie angiver en anden type problem. For eksempel betyder fejlkoder, der falder ind i 400’erne, såsom “404 Not Found” -fejlen og “401-fejl“, typisk at der var et problem med anmodningen, og at det pågældende websted eller side ikke kunne nås.
På den anden side er koder i 300’erne – såsom HTTP 304 status code, som vi vil fokusere på i dette indlæg – redirect codes. De gør det klart, at de ønskede oplysninger enten midlertidigt eller permanent blev erstattet med en anden ressource.
Når du støder på en af disse statuskoder, betyder det, at der skal foretages yderligere handlinger.
Hvad er HTTP 304 status code?
HTTP 304, også undertiden kendt som “304 Ikke ændret”, er en kode, der kommunikerer til din browser, at: “Den ønskede ressource er ikke blevet ændret siden sidste gang du åbnede den.”
Internet Engineering Task Force (IETF) definerer 304 Not Modified som:
Statuskoden 304 (ikke ændret) indikerer, at en betinget GET- eller HEAD-anmodning er modtaget og ville have resulteret i et 200 (OK) svar, hvis det ikke var for, at tilstanden blev evalueret til false. Med andre ord er der ikke behov for, at serveren overfører en repræsentation af målressourcen, fordi anmodningen indikerer, at klienten, som fremsatte anmodningen
I det væsentlige bliver din (eller din besøgendes) browser fortalt af serveren, at de ressourcer, der er gemt (cachelagret) i browseren, ikke er blevet ændret siden sidste gang du besøgte den side.
Til gengæld henter din browser en gemt version af websiden fra cachen. Formålet med dette er at forbedre sidehastighed og levering ved at forhindre, at din browser gentagne gange skal downloade de samme oplysninger.
Tjek vores videoguide til 304 Not Modified Status Code og alle 3xx-omdirigeringer
Forståelse af HTTP 304-anmodninger
Når din browser gemmer en ressource i cachen, gemmer den det, der kaldes the ‘Last-Modified header’ information, der blev sendt fra serveren. Hvis en browser modtager en anmodning om en webside, har den en gemt kopi af, men den ikke ved, om den har den nyeste version, sender den en ‘betinget validering’ -anmodning til serveren.
Browseren kommunikerer datoen og klokkeslættet for ‘Senest ændret’ til serveren til kopien af den ressource, den har, via header ‘If-Modified-Since‘ eller ‘If-None-Match‘. Serveren inspicerer disse headers og ser også på ETag-værdien. Sidstnævnte er en unik identifikator, der bruges til at specificere versionen af en bestemt ressource.
Hvis værdierne for disse filer er de samme, sender serveren HTTP 304 Ikke ændret response header, og browseren bruger den cachelagrede kopi af ressourcen.
Hvis browserkopien er forældet, hvilket betyder at filen er blevet ændret siden den sidste anmodning, sender den en HTTP 200-kode, og der bruges en ny kopi.
Desværre er der et par problemer, der kan forårsage et HTTP 304-fejlrespons, når det ikke skal forekomme. De mest almindelige årsager inkluderer:
- Problemer med serverkonfiguration eller Domain Name Server (DNS)
- En cachelagret ressource, der er inficeret eller ødelagt (dvs. malware eller vira, der påvirker browseren)
304 status code kan skyldes et problem på enten serversiden eller klientsiden, så det kan tage lidt fejlfinding for at diagnosticere og løse det.
Sådan repareres en HTTP 304 status code (6 potentielle metoder)
De metoder, du kan bruge til at løse en HTTP 304 status code, varierer fra enkel til ret teknisk. Søgemaskiner er ansvarlige for indeksering og caching af websteder, så dette problem kan normalt spores tilbage til den browser, der bruges til at få adgang til webstedet.
Selvfølgelig er der kun så meget, du kan gøre for at rette browsere på folk, der prøver at få adgang til dit websted.
At forstå, hvad der kan forårsage problemet for besøgende, kan dog være nyttigt, enten når man prøver at finde en løsning i din ende eller hjælpe dem direkte.
Med det i tankerne skal vi se på seks metoder, du kan bruge til at prøve at rette en HTTP 304 status code!
1. Ryd browserens cachedata
For det første kan rengøring af dine browserdata for at rydde cachen hjælpe med at få adgang til den ønskede URL. Dette inkluderer sletning af alle browserdata, cookies og cacheoplysninger.
Instruktionerne til udførelse af denne proces varierer afhængigt af den browser, du bruger. Hvis du er i tvivl om, hvordan du gør det på din enhed, er du velkommen til at henvise til vores guide til rydning af cachen for alle større browsere.
2. Kør en malware-scanning
Korrupte browsere, der er blevet inficeret med en virus eller malware, kan være en anden synder. Derfor er det en god ide at køre en malware-scanning på dit system. Dette kan hjælpe med at identificere og fjerne eventuelle problemer, der kan forstyrre eller forstyrre headeranmodningen, herunder problematiske extensions.
Hvis du bruger Windows-versionen af Chrome, kan du køre Malware Scanner and Cleanup Tool, der er indbygget.
For at gøre dette skal du først sørge for at køre den nyeste version af Chrome ved at åbne en ny fane og klikke på menuikonet efterfulgt af Om Chrome:
Hvis din browser ikke er opdateret til den aktuelle version, kan du løse det samme sted. Åbn derefter en ny Chrome-fane, og indtast “chrome://settings/cleanup” i URL-linjen.
Tryk på Enter, og klik derefter på Find-knappen ved siden af Find og fjern skadelig software:
Scanneren begynder at køre og rapporterer derefter tilbage med resultaterne.
Desværre kommer nogle andre browsere som Firefox og Edge samt macOS og Linux OS ikke med deres egne versioner af dette indbyggede værktøj. I stedet skal du køre en malware-scanning ved hjælp af antivirussoftwaren på din computer.
3. Deaktiver din browsers extensions
Din browsers extensions kan også blive inficeret og forstyrre anmodninger og serverkommunikation. Derfor vil du muligvis også deaktivere dem. Du kan gøre dette ved at åbne Chrome-menuen og gå til Indstillinger > Extensions:
På siden Extensions kan du deaktivere hver enkelt ved at klikke på den tilsvarende vippekontakt.
Du kan også slette ubrugte eller forældede extensions via knappen Fjern:
Igen vil denne proces variere lidt afhængigt af din browser. Målet er at fjerne eller deaktivere hver udvidelse manuelt og derefter kontrollere, om det løser HTTP 304-problemet.
Derefter kan du prøve at tænde dem igen en efter en.
4. Skyl DNS og nulstil TCP/IP
Hvis problemet ikke er løst på dette tidspunkt, kan der være et problem med DNS-indstillingerne. For eksempel kan brug af en forældet IP-adresse forårsage en HTTP 304 status code.
Derfor er en anden tilgang til at prøve at skylle DNS og nulstille TCP/IP.
Med Chrome kan du skylle browserens DNS ved at indtaste “chrome://net-internals/#dns” i en ny fane.
Tryk på Enter, og klik derefter på knappen Ryd Host Cache:
Du kan også skylle DNS og nulstille TCP/IP i dit operativsystem. Hvis du har brug for detaljeret vejledning, kan du henvise til vores vejledning om Sådan skylles DNS-cache (Windows, Mac, Chrome).
5. Prøv at bruge Google Public DNS
En anden mulig årsag er en forkert DNS-adresse. Derfor er det værd at bruge Google Public DNS til at se, om det løser problemet.
På Windows kan du gøre dette ved at trykke på Win + R-tasterne. I vinduet Kør, der vises, skal du skrive “ncpa.cpl” i kommandoboksen og derefter trykke på Ok.
I vinduet Netværksforbindelser, der åbnes derefter, skal du finde den netværksforbindelse, du bruger, og højreklikke på den. Vælg derefter Egenskaber:
Derfra skal du dobbeltklikke på Internet Protocol Version 4:
Vælg indstillingen “Brug følgende DNS-serveradresser”, og indtast derefter værdien “8.8.8.8” under Foretrukket og “8.8.4.4” under Alternativ:
Når du er færdig, skal du klikke på Ok. Genstart derefter dit system, og prøv at få adgang til webstedet igen.
For at ændre dine DNS-serverindstillinger ved hjælp af macOS, skal du gå til Apple > Systemindstillinger > Netværk:
Vælg din forbindelse i det vindue, der åbnes, og klik derefter på Avanceret efterfulgt af DNS-fanen:
Klik på + ikonet ved siden af IPv4- eller IPv6-adresserne for at erstatte de eksisterende adresser med Google Public IPs.
For yderligere instruktioner eller vejledning til brug af Google Public DNS på et Linux eller et andet operativsystem, se Googles egen DNS-guide.
6. Kontroller dine serverkonfigurationsfiler for forkerte omdirigerings-instruktioner
En HTTP 304 ikke ændret status code kan forekomme på grund af både server- og klientrelaterede problemer. Hvis ingen af de metoder, vi hidtil har dækket, har løst problemet, kan dine serverkonfigurationsfiler muligvis være i fejl. For eksempel er det muligt, at der er forkerte instruktioner til omdirigering.
Processen til kontrol af dine serverkonfigurationsfiler afhænger af, om du bruger Nginx eller Apache.
Hos Kinsta bruger vi Nginx-webserveren. Så hvis du er en Kinsta-bruger, har du ikke adgang til den .htaccess fil, som Apache-brugere gør.
Du kan dog stadig udføre lignende funktioner. For eksempel, efter at have logget ind på MyKinsta, kan du tjekke afsnittet Analytics > Response på instrumentbrættet for en opdeling af svarkoder og omdirigeringer:
Du kan også kontrollere fejllogs. Hvis du har et specifikt spørgsmål eller en anmodning om redigering af konfigurationsfilerne, er det bedst at kontakte vores supportteam.
Hvis din server kører på Apache, skal du kigge efter .htaccess-filen i rodmappen på dit websted. Du kan gøre dette ved at logge på File Manager for din hostingkonto og navigere til mappen public_html.
Når du har åbnet den fil, skal du kigge efter en sektion mod_cache modul. Det skal se sådan ud:
LoadModule cache_module modules/mod_cache.so
<IfModule mod_cache.c>
LoadModule cache_disk_module modules/mod_cache_disk.so
<IfModule mod_cache_disk.c>
CacheRoot "c:/cacheroot"
CacheEnable disk "/"
CacheDirLevels 5
CacheDirLength 3
</IfModule>
# When acting as a proxy, don't cache the list of security updates
CacheDisable "http://security.update.server/update-list/"
</IfModule>
Vi anbefaler ikke at slette noget, da det kan forårsage alvorlig skade. I stedet kan du prøve midlertidigt at kommentere cache-sektionen ved at tilføje et “#” symbol i begyndelsen af hver linje.
Når du har gemt dine ændringer, skal du kontrollere, om dette løste HTTP 304-status code.
Resumé
300s redirection codes bruges til at forbedre sidehastighed og ydeevne. Desværre, når en server eller browser ikke er korrekt konfigureret, kan kommunikation mellem de to blive afbrudt og resultere i en HTTP 304-ikke ændret status code. Der er seks metoder, du kan bruge til at rette det, specifikt:
- Rydning af din browsers cache-data.
- Kører en malware-scanning.
- Deaktivering af dine browser extensions.
- Skylning af DNS og nulstilling af TCI/IP.
- Forsøger Google Public DNS.