Orsaken? Jo, om man tittar i början av en HTML-fil hittar man typiskt nånting i stil med:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Det här ska uttydas "det här dokumentet är formatterat enligt XHTML-standarden, vars exakta definition (DTD) går att hitta på den här adressen hos W3C". En XML-parser som vill tolka dokumentet kan alltså ladda ner DTD:n för att ta reda på exakt hur tolkningen ska gå till.
Men i praktiken brukar program som ska hantera XHTML naturligtvis inte ladda ner XHTML-definitionen om och om igen för varje dokument som ska tolkas; det är ju en välkänd dokumenttyp som programmet redan har inbyggd kunskap om hur den ska hanteras.
Fast, uhm, MSXML har tydligen gjort just det. Laddat ner XHTML-DTD:n om och om och om igen. Från världens alla Windowsdatorer. W3Cs stackars webserver har tydligen inte alls tyckt om det. Från Microsofts supportartikel för gårdagens uppdatering:
Consider the following scenario:Det här är en klockren dDOS-attack på W3C. Det skulle kunna betraktas som lite pinsamt för Microsoft, tycker jag. Inte minst eftersom precis samma sak hände för snart tre år sedan, när DTD-filen för RSS-flöden plötsligt inte längre var tillgänglig.In this scenario, XHTML parsing fails.
- You run an application on a computer that is running one of the following operating systems:
- Windows XP
- Windows Server 2003
- Windows Vista
- Windows Server 2008
- The application uses Microsoft XML Core Services (MSXML) to process XHTML files.
- The application generates many requests when it tries to retrieve well known Document Type Definition (DTD) files from a World Wide Web Consortium (W3C) Web server.
- These redundant retrieval requests cause the W3C server to block the DTD requests.