HTTP/2 hurtigere side load igen igen

Hastighed er noget vi alle kan lide! Og der sker jo hele tiden noget.

Fx er HTTP/2 noget vi alle burde se på.

Vi bruger normalt HTTP 1.1 og det er fint, det betyder at når en besøgende går ind på din side så henter han siden fra dig, alt os sige at siden fylder 1MB og er på 50 filer/billeder/scrips osv.

Disse 50 filer bliver downloadet 8 af gangen, fordi det er hvad HTTP 1.1 kan, 8 af gangen ikke mere og ikke mindre, det kan hackes ligesom alt andet, fx med CDN.
HTTP/2 har ikke denne begrænsning, her henter brugeren bare siden så hurtigt det kan gå. Der er sikkert en begrænsning men jeg har ikke fundet noget konkret på det.

HTTP/2 er det nye, SPDY og html/1.1 er det gamle, jeg har ingen idé om hvad forskellen på SPDY og html/1.1 er, og har heller ikke fundet nogen troværdige der skriver om det.

Hvor meget hurtigere er det så?

Ifølge siden:  loadimpact.com så er Mackabler.dk ca. 30% hurtigere end HTTP 1.1, du kan selv teste din side.

loadimpact

Des flere filer du har og des mere din side fylder des hurtigere gør HTTP/2 din side.

Hvordan får du HTTP/2 ?

Jeg er ikke sikker, jeg ved heller ikke hvordan man tjekker om man har eller ej, på pingdom tools kan du tydeligt se på http/1.1 sider at de loader 8 filer af gangen, så det er det eneste jeg har at gå efter.

Jeg fik det med i Cloudflare, verdens bedste gratis DNS service. Det er med helt gratis, du skal ikke engang slå det til, og hvis dine brugere ikke har en browser som kan http2 så slår den selv tilbage til http 1.1 eller SPDY.

Der er en anden lille hemmelighed

Http2 afhænger rigtigt meget af Google, Apple og Microsoft fordi de laver dine browsere, så selv om Http/2 burde virke på alle browsere og alle sider så gør det det ikke.
HTTP/2 kræver SSL, ikke fordi det er bygget ind i HTTP/2, men bare fordi ingen af browser-folkene, Google Microsoft og Apple, har lavet det til at virke uden SSL.

Så for at få Http/2 skal du have Cloudflare og SSL, https://ditsite.dk, tilfældigvis er SSL også bygget ind i Cloudflare 🙂

Lidt ekstra info

Jeg ved meget lidt om dette, så spørg din Sysadmin eller webmand, jeg ved heller ikke om det er serveren som skal understøtte det, fx FastCGI, apache eller nginx, om det er PHP der understøtter det,  fx PHP5.6, PHP7, selv om det ikke giver mening, eller om det er DNS som skal understøtte det, selvom det heller ikke giver mening.

Jeg har tidligere skrevet om CDN, det betyder at din side bliver hentet flere steder fra samtidig, med dette HTTP2 noget, er det mere sjældent man behøver CDN.

Opsætning af CloudFlare

Jeg har tidligere skrevet om hvorfor man skal vælge CloudFlare, det kan du læse der.

Her er en guide til hvordan man sætter det op og hvordan man får SSL til at virke, jeg bruger mit domæne Bagnefoto.dk, fordi det ikke endnu er på SSL eller Cloudflare.

Det er vigtigt at vide at du ikke skifter din hosting ud, så lad endelig vær med at droppe den.

Guiden til at sætte et domæne op, med SSL og Cloudflare:

1. Opret en konto hos Cloudflare:

cloudflare

2. Tilføj dit site til Cloudflare

Dette gøre ved at trykke “add site” fra Dashboardet når du lige er logget ind. Hvorefter du trykker “Begin Scan”.

scanning-med-cloudflare

3. Så skal du tjekke dine DNS indstillinger

Cloudflare gennemgår de indstillinger den kan finde, så side delen virker helt sikkert med det samme, men hvad angår emails og andre ting du selv har tilføjet kan det være de ikke kommer med, sammenligne den med de indstillinger du har på din nuværende DNS udbyder. (Jeg har gjort dette med 20 domæner nu, og har aldrig skulle ændre noget).

scanning-færdig-med-cloudflare

4. Vælg den plan og få navne server indstillinger

Vælg den gratis plan med det samme, du kan altid opgradere på 1min senere, og hvis gratis er godt nok, så kan du lige så godt nøjes med det.

Bagefter får du navne server indstillinger, dem skal du skrive ind i DK-hostmaster, hvis du har et .dk domæne, og hvis du har et andet skal du skrive dem ind i domæne håndteringen det sted du købte dit domæne.

navneservere-cloudflare

5. Skift navne server

Jeg går ud fra de fleste her har et dk domæne, så jeg viser hvordan man gør hos Dk-hostmaster.

Hos DK-hostmaster skal du logge ind med din bruger og kodeord.

På hoved menuen skal du ind på: Redeleger domænenavn

Her skriver du dit domæne ind også det første felt fra Cloudflare, som i mit tilfælde var ‘abby.ns.cloudflare.com’.

Derefter trykker du videre, og bekræfter.
Dk-hostmaster tager tit langt tid om at virke, så det kan godt være at du skal holde en times pause også forsøge igen.
Efter du har bekræftet kan der også let gå 3-4 timer før det bliver vist rigtigt.
For at være sikker på at du får cloudflare versionen, så brug en ny browser eller forsøg i inkognito mode samt forsøg med “rigtig refresh”.
cmd+r er normal refresh, mens rigtig refresh er cmd+shift+r.

dk-hostmaster

6. Så virker Cloudflare

Hvis cloudflare siger der ikke er nogen fejl, så virker alt nu.

cloudflare-virker
7. Nu skal vi have SSL på domænet

Det virker allerede, med standard indstillingerne. Men lige for at tjekke, du skal ind i dashboadet hvor du kan se alle dine domæner, også trykke på det domæne du vil have SSL på. Her skal SSL stå til “Flexible” som neden for:

cloudflare-backend

8. WordPress plugins

Nu skal du ind i din WordPress backend og installere et par plugins.

A. Du skal bruge et til at rette en redirect loop som WordPress laver, det hedder: CloudFlare Flexible SSL hvis det ikke virker så brug: WordPress HTTPS (SSL)

B. Test om dit domæne virker med SSL? Sæt https:// foran dit domæne og se om den laver en fejl. Hvis den laver en Cloudflare fejl, så har jeg oplevet at det var fordi SSL stod til “Full” og ikke “Flexible”. Det er Ok at den lave en gul fejl, det klare vi senere.

C. Så skal du bruge et plugin til at sikre dig at alle bliver sendt videre til SSL i stedet for den normale kedelige http:// -version:

Jeg bruger WP Force SSL men på et domæne hvor dette ikke virker bruger jeg: Force SSL.

D. Du skal nu ind i “indstillinger” og “Generelle indstillinger”, hvor du finder et felt til din domæne navn, her skal du ændre feltet til https://xxx.dk i stedet for http://xxx.dk. Dette skal du kun gøre hvis domænet faktisk virker med SSL (test B), ellers virker dit domæne ikke mere, og du skal ind i databasen for at ændre dette tilbage.

Dette behøver du faktisk ikke, og det gør det svært at rette SSL fejl, så lad vær.

wp-ssl-indstillinger

9. Nu kommer SSL problemerne

Særligt Chrome har et kæmpe problem med SSL problemer, de, som de eneste, kræver at man henter alt igennem SSL, før du får en grøn lås.

Men det er bare at komme igang.

SSL-problemer

10. Sådan løser du SSL problemerne

Det er meget enkelt, du skal ind i Chrome, ind på din side også skal du ind i udvikler værktøjet. Du kan finde det under “vis”, “udvikler” også “udviklerværktøjer” i menuen eller bruge genvejen: alt+cmd+i.

Under fanen “Console” kan du se de fleste af de fejl din side laver, fx SSL fejl.

På billedet nede for, opstillet som det tydeligt er, kan du se en enkelt SSL fejl, Chrome vil have at billedet “857847_1015180676527101…” ikke bliver hentet med https men bare normalt http, så alt du skal gøre at at rette linket til billedet til enten:
https://bagnegaard.dk/wp-content/uploads/2015/02/857847_1….jpg
Eller
/wp-content/uploads/2015/02/857847_1….jpg

Også bliver alting grønt igen.

Du skal gøre dette på alle dine sider, hele vejen igennem dit website, og det kan godt tage tid, det kan nok betale sig at lave en lille script til MySQL databasen som kan gøre det for dig, hvis du har mange indlæg.

Det er meget normalt at en side har 5-10 SSL fejl, men det er bare at gå igang.

ssl-fejl

11. Også virker alt.

Så virker det