Co to jest format pliku AXD?
Pliki z rozszerzeniem .axd są używane przez aplikacje ASP.NET Web Forms działające na Microsoft IIS. W przeciwieństwie do większości typów plików internetowych, .axd nie jest dokumentem przechowywanym na dysku - jest to wirtualny punkt końcowy adresu URL zmapowany w web.config do wbudowanej klasy IHttpHandler, która generuje odpowiedź na bieżąco.
Punkty końcowe .axd nie przechowują instrukcji na maszynach klienckich; zamiast tego procedura obsługi przesyła strumieniowo osadzone zasoby zestawów - skrypty, obrazy i inne aktywa - bezpośrednio ze skompilowanych zestawów .dll do żądającej przeglądarki.
Domyślnie punkty końcowe zasobów .axd mają nazwy WebResource.axd lub ScriptResource.axd. Chociaż są bardzo podobne, każdy pełni inną rolę: WebResource.axd obsługuje ogólne osadzone zasoby, takie jak obrazy i zasoby binarne, podczas gdy ScriptResource.axd jest zazwyczaj używany z frameworkiem ASP.NET AJAX i oferuje dodatkowe funkcje, takie jak łączenie i kompresja skryptów. Trzeci wbudowany punkt końcowy, Trace.axd, wyświetla diagnostykę śledzenia dla każdego żądania w celu debugowania.
Procedury obsługi zarejestrowane przez .axd mogą obsługiwać pliki JavaScript, arkusze stylów CSS, obrazy i dane wyjściowe śledzenia HTML. Punkty końcowe .axd są również powszechnie używane po stronie klienta do pobierania plików obrazów, tekstu lub skryptów osadzonych w zestawach po stronie serwera. Parametr ciągu zapytania d= używany przez WebResource.axd jest podpisany skrótem HMAC przy użyciu klucza machineKey aplikacji, co chroni punkt końcowy przed nieautoryzowanym wyliczaniem zasobów. .axd to klasyczna funkcja ASP.NET Web Forms i nie jest używana w ASP.NET Core, który zastępuje ją statycznymi zasobami internetowymi i oprogramowaniem pośredniczącym do tworzenia pakietów.
Bezpieczeństwo
RYZYKO: LOWSam .axd nie jest plikiem i nie jest niebezpieczny w „posiadaniu”. Dwie istotne kwestie: (1) Po stronie serwera pozostawienie włączonego Trace.axd w środowisku produkcyjnym może spowodować wyciek danych żądań (nagłówki, sesja, wartości zapytań) do każdego, kto go przegląda - należy go wyłączyć w produkcyjnym web.config. (2) WebResource.axd był historycznie powiązany z biuletynami bezpieczeństwa ASP.NET (zwłaszcza luka padding-oracle z 2010 r., MS10-070, która wykorzystywała zaszyfrowany token d=) - należy dbać o aktualizacje .NET Framework. Dla zwykłych użytkowników zapisany plik .axd to po prostu tekst skryptu lub obrazu i można go bezpiecznie sprawdzić w edytorze.
Szczegóły formatu
w pigułceProgramy otwierające pliki AXD
Szczegóły techniczne
specyfikacja| Typ formatu | Wirtualny punkt końcowy procedury obsługi HTTP po stronie serwera; na dysku nie istnieje żaden plik - adres URL `.axd` jest rozpoznawany w czasie wykonywania przez zarejestrowaną klasę IHttpHandler |
| Interfejs procedury obsługi | Implementuje `System.Web.IHttpHandler` lub `IHttpAsyncHandler`; metoda `ProcessRequest(HttpContext)` zapisuje odpowiedź bezpośrednio do strumienia wyjściowego HTTP |
| Rejestracja procedury obsługi | Deklarowana w `<httpHandlers>` (IIS 6 / .NET 2.0) lub `<handlers>` (zintegrowany potok IIS 7+) w `web.config` |
| Deweloper / platforma | Microsoft; część ASP.NET Web Forms w .NET Framework (wprowadzona w 2002); nieobecna w ASP.NET Core |
| Typowe nazwy punktów końcowych | `WebResource.axd` (ogólne osadzone zasoby), `ScriptResource.axd` (skrypty ASP.NET AJAX), `Trace.axd` (diagnostyka żądań) |
| Typ MIME | Zależy od odpowiedzi procedury obsługi - `application/javascript`, `text/css`, `image/png`, `text/html` i inne; ustawiane dynamicznie dla każdego żądania |
| Źródło zasobów | Zasoby osadzone skompilowane w zestawach `.dll` z akcją kompilacji `EmbeddedResource`; pobierane przez `Assembly.GetManifestResourceStream` w momencie żądania |
| Mechanizm bezpieczeństwa | Parametr zapytania `d=` w `WebResource.axd` jest podpisany HMAC przy użyciu `machineKey` aplikacji; nieprawidłowe podpisy zwracają błąd HTTP 400, zapobiegając wyliczaniu zasobów |
| Zachowanie buforowania | Odpowiedzi zawierają nagłówek `Cache-Control: public` oraz nagłówek `Expires` z odległą datą; buforowanie wyjściowe IIS przechowuje powtarzające się odpowiedzi w pamięci dla wydajności |
| Kompresja | IIS może stosować kompresję gzip lub Brotli na poziomie HTTP do odpowiedzi `.axd` podczas przesyłania; `ScriptResource.axd` obsługuje również łączenie skryptów po stronie serwera |
| Metoda dostępu klienta | HTTP GET z zaszyfrowanym i podpisanym HMAC ciągiem zapytania (np. `?d=<token>&t=<timestamp>`); przeglądarka otrzymuje odpowiedź jako normalny zasób |
| Dane wyjściowe `Trace.axd` | Renderuje dane śledzenia ASP.NET dla każdego żądania jako HTML - podział czasu, nagłówki HTTP, pliki cookie, wartości formularzy, zmienne serwerowe i drzewo kontrolek |
| Zastąpiony przez | Potok statycznych zasobów internetowych ASP.NET Core oraz oprogramowanie pośredniczące do tworzenia pakietów i minifikacji; w ASP.NET Core nie istnieją procedury obsługi `.axd` |
| Wydano | 2002 (ASP.NET 1.0, .NET Framework) |
| Najnowsza wersja | ASP.NET Web Forms / Framework 4.8 (classic; not used in ASP.NET Core) |
| Specyfikacja | learn.microsoft.com |
Konwersje AXD
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki AXD.