De HTTP 304 Not Modified statuscode geeft een communicatieprobleem aan tussen de browser van een gebruiker en de server van een website. Als jij of je gebruikers deze statuscode op je site tegenkomen, kan deze de toegang tot je content volledig blokkeren.

Omdat het zich aan de server- óf clientzijde kan bevinden, kan het een wat werk kosten om de oorzaak van het probleem te achterhalen. Gelukkig zijn er verschillende foolproof technieken om het probleem op te lossen.

In dit artikel bespreken we HTTP statuscodes en leggen we uit wat de HTTP 304 statuscode is. Vervolgens behandelen we zes methodes die jij (of je bezoekers) kan gebruiken om het op te lossen.

Laten we beginnen!

Wat zijn HTTP statuscodes

Om HTTP 304 te kunnen begrijpen is het handig om statuscode in het algemeen te snappen. Simpel gezegd wordt er elke keer dat je een verzoek verstuurt via je browser (bijvoorbeeld door naar een website te gaan), een HTTP statuscode verstuurd tussen jouw browser en de server. Met deze code kunnen de twee informatie uitwisselen.

Er zijn meer dan 40 verschillende statuscodes die hierbij gebruikt kunnen worden. Maar er zijn maar een handjevol codes die je rechtstreeks tegen zult komen. Wanneer je een statuscode ziet, betekent dat meestal dat er iets mis is gegaan.

HTTP statuscodes zijn verdeeld in vijf categorieën, die nummers hebben tussen de 100 en 500. Elk honderdtal staat voor een bepaald type probleem. Foutcodes in de 400 en de “401 error“, bijvoorbeeld de “404 Not Found” fout, betekenen dat er een probleem was met het verzoek en dat de gevraagde website of pagina niet bereikt kon worden.

Aan de andere kant zijn de codes in de 300 – zoals de HTTP 304 statuscode waar we op focussen in dit artikel – zogenaamde redirection codes. Ze maken je duidelijk dat de opgevraagde informatie tijdelijk of permanent is vervangen door een andere bron.

Wanneer je een van deze statuscodes tegenkomt, betekent het dat je verdere actie moet ondernemen.

Wat is de HTTP 304 statuscode?

HTTP 304, ook bekend als “304 Not Modified” is een code die je browser vertelt dat “The requested resource has not been modified since the last time you accessed it.” Oftewel, de opgevraagde bron is niet veranderd sinds de laatste keer dat je deze opvroeg.

De Internet Engineering Task Force (IETF) definieert de 304 Not Modified als:

De 304 (Not Modified) statuscode geeft aan een voorwaardelijk GET of HEAD verzoek is ontvangen en zou hebben geresulteerd in een 200 (OK) respons als de conditie niet als “false” werd geëvalueerd. Met andere woorden: de server hoeft geen representatie van de doelbron over te dragen, omdat het verzoek aangeeft dat de client die het verzoek heeft gedaan al een geldige representatie heeft; de server leidt daarom de client om, om gebruik te maken van de opgeslagen representatie alsof het de payload van een 200 OK respons was.

Dit wil zeggen dat de browser te horen krijgt van de server dat de bronnen die de browser opgeslagen heeft (gecachet) niet zijn aangepast sinds je laatste bezoek.

Vervolgens laadt je browser een opgeslagen versie van de webpagina uit de cache. Het doel hiervan is de laadtijd en snelheid van pagina’s te verbeteren door te voorkomen dat je browser meerdere keren dezelfde informatie moet downloaden.

Bekijk onze videogids over de 304 Not Modified statuscode en alle 3xx redirects

HTTP 304 verzoeken begrijpen

Wanneer je browser een bron in de cache opslaat, bewaart het de zogenoemde “Last-Modified header” informatie die de server gestuurd heeft. Als de browser een verzoek krijgt voor een webpagina waarvan een opgeslagen kopie bestaat, maar niet zeker weet of dat de laatste versie is, stuurt de browser een “voorwaardelijk validatie” verzoek naar de server.

De browser stuurt daarin de “Last-Modified” datum en tijd naar de server voor de kopie die opgeslagen is, via de “If-Modified-Since” of de “If-None-Match ” header. De server bekijkt deze headers en kijkt ook naar de waarde van ETag. Deze laatste is een unieke identifier die gebruikt wordt om een bepaalde versie van een specifieke bron te identificeren.

Als de waarden voor deze bestanden hetzelfde zijn, stuurt de server de HTTP 304 Not Modified responsheader terug, waarna de browser de gecachete versie gebruikt.

Als de kopie van de browser verouderd is, oftewel het bestand is veranderd sinds het laatste bezoek, stuurt de server een HTTP 200 code terug, waarna je browser een nieuwe kopie laadt.

Helaas zijn er een paar zaken die een HTTP 304 foutrespons veroorzaken wanneer deze niet juist functioneert. De meest voorkomende oorzaken zijn:

  • Problemen met de configuratie van de server of met de Domain Name Server (DNS)
  • Een gecachete bron die geïnfecteerd of beschadigd is (oftewel malware of virussen in de browser)

De 304 statuscode kan het gevolg zijn van een probleem aan de server- of clientzijde, dus het kan zijn dat je wat dingen moet proberen om een diagnose te stellen en het op te lossen.

Zo los je een HTTP 304 statuscode op (6 potentiële methodes)

De methodes die je kan gebruiken om een statuscode op te lossen kunnen variëren van vrij eenvoudig tot redelijk technisch complex. Zoekmachines zijn verantwoordelijk voor het indexeren en cachen van websites, dus dit probleem kan meestal worden herleid tot de browser die wordt gebruikt om toegang te krijgen tot de site.

Natuurlijk kun je maar weinig doen aan de browsers van je bezoekers.

Maar door te begrijpen waardoor je bezoekers een probleem zien kun je wel proberen een oplossing te vinden, of contact op te nemen met je bezoekers.

Laten we met dat in gedachten eens kijken naar zes methoden die je kan gebruiken om te proberen een HTTP 304 statuscode te fiksen!

1. Verwijder alle data uit de cache van je browser

Allereerst kan het helpen om de cache van je browser te legen. Dit betekent het verwijderen van alle browsingdata, cookies en cache-informatie.

Hoe je dit precies doet hangt af van de browser die je gebruikt. Als je niet zeker weet hoe je dit in jouw geval moet doen, lees dan even onze uitleg over het leegmaken van de cache voor alle grote browsers.

2. Doe een malwarescan

Beschadigde browsers die geïnfecteerd zijn met een virus of malware kunnen ook voor dit soort problemen zorgen. Het is daarom een goed idee om een malwarescan te doen van je computer. Door dit te doen kun je alle problemen identificeren en verwijderen die effect hebben op de header-request, waaronder problematische extensies.

Als je de Windows versie van Chrome gebruikt, kun je de Malware Scanner en Cleanup Tool gebruiken die meegeleverd worden.

Om dit te doen, check je eerst dat je de laatste versie van Chrome gebruikt door een nieuw tabblad te openen en te klikken op het menu. Vervolgens klik je op About Chrome:

De "about" pagina bij de Google Chrome browser
De “about” pagina bij de Google Chrome browser

Als je browser niet volledig bijgewerkt is, kun je dat nu ook meteen oplossen. Vervolgens open je een nieuw tabblad in Chrome en type je “chrome://settings/cleanup” in de adresbalk.

Druk op Enter en vervolgens klik naast Find and remove harmful software op de Find-knop.

De cleanup tool in Google Chrome
De cleanup tool in Google Chrome

De scanner zal gaan draaien, en je de resultaten presenteren.

Helaas hebben andere browsers, zoals Firefox en Edge, net as de MacOS en Linux OS, geen ingebouwde versie van deze tool. Je zult dan dus een malwarescan moeten doen via de antivirussoftware op je computer.

3. Schakel de extensies van je browser uit

De extensies van je browser kunnen geïnfecteerd raken en daardoor verzoeken en communicatie met servers verstoren. Daarom kun je zo proberen uit te schakelen. Dit doe je ook door het menu van Chrome te openen en naar Settings>Extensions te gaan:

Het Extensions menu in de instellingen van Chrome
Het Extensions menu in de instellingen van Chrome

Binnen de pagina Extension kun je de verschillende extensies uitzetten door op de bijbehorende schakelaar te klikken.

Je kunt ook ongebruikte of verouderde extensies verwijderen via de Remove knop, wat altijd een goed idee is:

De pagina Extensions in Google Chrome
De pagina Extensions in Google Chrome

Ook hier weer geldt dat dit proces verschilt per browser. Het doel is om elke extensie één-voor-één uit te zetten en dan te kijken of dat de HTTP 304 fout oplost.

Wanneer dat lukt, kun je de rest weer aanzetten en de boosdoener verwijderen.

4. Leeg de DNS en reset het TCP/IP

Als het probleem nu nog niet opgelost is, dan is er mogelijk een probleem met de DNS instellingen. Het gebruik van een verouderd IP adres kan bijvoorbeeld een HTTP 304 statuscode veroorzaken.

Daarom kun je proberen om de DNS te legen en het TCP/IP te resetten.

Binnen Chrome leeg je de browser DNS door “chrome://net-internals/#dns” in te typen in een nieuw tabblad.

Druk op Enter en klik op de Clear host cache knop:

De instellingenpagina voor het legen van de DNS cache in Chrome
De instellingenpagina voor het legen van de DNS cache in Chrome

Je kunt de DNS ook legen en de TCP/IP resetten binnen je OS. Als je meer instructies nodig hebt, bekijk dan onze uitleg Zo leeg je je DNS cache (Windows, Mac, Chrome).

5. Probeer de Google Public DNS te gebruiken

Een andere mogelijke oorzaak is een onjuist DNS adres. Daarom is het de moeite waard om de Google Public DNS te gebruiken om te zien of dat het probleem oplost.

Bij Windows kun je dit doen door te drukken op Win+R. In het Run venster dat dan verschijnt, type je “ncpa.cpl” in de opdrachtregel, en klik je op Ok.

In het venster Network Connections dat nu opent, zoek je de netwerkverbinding die je gebruikt, en klik je daarop met de rechtermuisknop. Vervolgens selecteer je Properties:

De instellingenpagina Network Connections binnen Windows
De instellingenpagina Network Connections binnen Windows

Vanaf daar dubbelklik je op Internet Protocol Version 4:

De eigenschappen voor wi-fi binnen Windows
De eigenschappen voor wi-fi binnen Windows

Selecteer de optie “Use the following DNS server adresses”, en voer de waarde “8.8.8.8” in onder Preferred en “8.8.4.4” onder Alternate:

De velden waar je de preffered en alternate DNS server adressen kunt invoeren bij Windows
De velden waar je de preffered en alternate DNS server adressen kunt invoeren bij Windows

Wanneer je dat gedaan hebt klik je op Ok. Vervolgens herstart je je systeem, en probeer je weer naar de website te gaan.

Om de instellingen voor de DNS-server binnen macOS te veranderen, ga je naar Apple > System Preferences > Network:

System Preferences in macOS
System Preferences in macOS

In het venster dat verschijnt, selecteer je je verbinding en klik je op Advanced en vervolgens op het DNS tabblad:

Het Network DNS panel in macOS
Het Network DNS panel in macOS

Klik op het + icoon naast de IPv4 of IPv6 adressen om de bestaande adressen te vervangen door de Google Public IPs.

Voor verdere instructies of ondersteuning over Google Public DNS, bijvoorbeeld voor Linux of een ander besturingssysteem, kun je het beste de DNS gids van Google zelf erbij pakken.

6. Check de configuratiebestanden van je server voor verkeerde redirects

Een HTTP 304 Not Modified statuscode kan optreden als gevolg van zowel server- als clientgerelateerde problemen. Als geen van de methoden die we tot nu toe hebben behandeld het probleem hebben verholpen, is het mogelijk dat je serverconfiguratiebestanden een fout hebben gemaakt. Het is bijvoorbeeld mogelijk dat er onjuiste omleidingsinstructies aanwezig zijn.

Het proces om de configuratiebestanden van je server te checken is afhankelijk van of je Nginx of Apache gebruikt.

Bij Kinsta gebruiken we de Nginx webserver. Als je een Kinsta gebruiker bent, zul je dus geen toegang hebben tot het .htaccess bestand dat Apache gebruikers hebben.

Maar je kunt nog altijd soortgelijke functies gebruiken. Bijvoorbeeld, nadat je ingelogd bent op MyKinsta kun je kijken bij Analytics > Response binnen het dashboard voor een analyse van de responscodes en redirects:

Een voorbeeld van uitsplitsing van responscodes in MyKinsta.
Een voorbeeld van uitsplitsing van responscodes in MyKinsta.

Hier kun je ook de foutlogs bekijken. Als je een specifieke vraag of verzoek hebt over het aanpassen van de configuratiebestanden, kun je het beste contact opnemen met ons supportteam.

Als je server op Apache draait, zul je moeten zoeken naar het .htaccess bestand in de rootmap van je site. Dit doe je door in te loggen in de File Manager van je hostingaccount, en naar de public_html map te gaan.

Als je dat bestand geopend hebt, zoek je naar de mod_cache module. Dat zal er ongeveer zo uitzien:

LoadModule cache_module modules/mod_cache.so

    LoadModule cache_disk_module modules/mod_cache_disk.so
    
        CacheRoot "c:/cacheroot"
        CacheEnable disk  "/"
        CacheDirLevels 5
        CacheDirLength 3
    

    # When acting as a proxy, don't cache the list of security updates
    CacheDisable "https://security.update.server/update-list/"

We raden je af om hier iets te verwijderen, aangezien dat aanzienlijke schade kan aanrichten. In plaats daarvan kun je beter het cachingdeel veranderingen in opmerkingen “#” symbool aan het begin van elke regel te plaatsen.

Nadat je je wijzigingen hebt opgeslagen, controleer je of dit de HTTP 304 statuscode heeft opgelost.

Samenvatting

Redirection codes in de 300 worden gebruikt om paginasnelheid en performance te verbeteren. Als een server of browser niet correct is geconfigureerd, kan de communicatie tussen de twee helaas worden onderbroken en resulteren in een HTTP 304 Not Modified statuscode. Er zijn zes methodes die je kan gebruiken om het probleem op te lossen, dit zijn:

  1. Legen van de cache van je browser.
  2. Een malwarescan uitvoeren.
  3. Al je Chrome extensies uitschakelen.
  4. De DNS legen en het TCP/IP resetten.
  5. De Google Public DNS gebruiken.
  6. Het controleren van de configuratiebestanden van je server voor foutieve redirects.