Understanding WCAG 2.0

Skip to Content (Press Enter)

SVR1: Automatikus átirányítás használata a kliens-oldal helyett a szerver-oldalon

Alkalmazás

Szerver-oldali technológiák, beleértve a szerver-oldali szkript nyelveket és az átirányításra szolgáló URL vagy URL mintákkal működő szerver konfigurációs fájlokat.

Ez a technika az alábbiakra vonatkozik:

Leírás

A technikának az a célja, hogy elkerülje az egymás után gyorsan letöltésre kerülő két weboldal okozta zavart, ami akkor áll elő, ha az első letöltött oldal átirányítja a felhasználót egy másik oldalra. Bizonyos felhasználói programok a HTML meta elemének segítségével irányítják át egy bizonyos idő elteltével a felhasználót egy másik oldalra. Ez a tulajdonság azonban hozzáférhetetlenné teszi a lapot bizonyos felhasználók számára, különös tekintettel a képernyőolvasókat használókra. A szerver-oldali technológiák a felhasználók megzavarása nélkül végzik el az átirányítást. A szerver-oldali szkript vagy a konfigurációs fájl a 3xx státus kóddal és a másik URL helyzetét meghatározó fejléccel ellátott megfelelő HTTP válasz küldésére utasítja a szervert. A válasz böngészőhöz történő megérkezésekor a lokációra vonatkozó információk megváltoznak és a böngésző az új URL-nek megfelelő oldalt fogja megjeleníteni.

Példák

1. példa: JSP/Servlets

A Java Servlets vagy JavaServer Pages (JSP) alkalmazói használhatják a HttpServletResponse.sendRedirect(String url)kódokat.

Példa kód:


?
public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
?
  response.sendRedirect("/newUserLogin.do");
}

A kód a 302 státus kódot ("Megtalált") tartalmazó választ, valamint az új URL elhelyezkedésére vonatkozó információkat küldi el a felhasználónak. A response.sendError(int code, String message)és az interfész javax.servlet.http.HttpServletResponse által meghatározott státus kód alkalmazásával lehetőség van más státuskód beállítására is.

Példa kód:


?
public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
?
  response.sendError(response.SC_MOVED_PERMANENTLY, "/newUserLogin.do");
}

Abban az esetben, ha a munkafolyamat miatt az alkalmazásban a HttpServletResponse.encodeURL(String url)segítségével került az URL felülírásra, akkor a HttpServletResponse.sendRedirect(String url)használata javasolt a HttpServletResponse.encodeRedirectURL(String url)helyett. Az URL a HttpServletResponse.encodeURL(String url)segítségével is felülírható, majd az új URL továbbítható a HttpServletResponse.sendRedirect(String url)-hez.

2. példa: ASP

A VBScriptel működő Aktív Szerver Oldal (ASP) esetén a fejlesztők használhatják a Response.Redirect módszert.

Példa kód:


  Response.Redirect "newUserLogin.asp"

vagy

Példa kód:


Response.Redirect("newUserLogin.asp")

Az alábbi kód egy specifikus HTTP státuskóddal kiegészített példa.

Példa kód:


Response.Clear
Response.Status = 301
Response.AddHeader "Location", "newUserLogin.asp"
Response.Flush
Response.End
3. példa: PHP

PHP alkalmazásakor a fejlesztők egy üres HTTP fejlécet küldenek a header módszerrel. Az alábbi kód egy 301-es státuskódot, valamint egy új lokációt küld. A státus nem egyértelmű meghatározása esetén az átirányítási üzenet a HTTP 302 státuskódot küldi.

Példa kód:


 <?php
header("HTTP/1.1 301 Moved Permanently);
header("Location: http://www.example.com/newUserLogin.php");
?>
4. példa: Apache

Az Apache Web szerver az alábbi példa szerint is konfigurálható az átirányítás kezelésére.

Példa kód:


redirect 301 /oldUserLogin.jsp http://www.example.com/newUserLogin.do

Források

A források csak információs célokat szolgálnak, és csak angolul elérhetőek.

(jelenleg nincsenek)

Ellenőrzések

Folyamat
  1. Keressen meg minden más weboldalra mutató hivatkozást vagy algoritmikus hivatkozást.

  2. Az adott weboldalak URI-jára mutató minden egyes hivatkozás vagy algoritmikus hivatkozás esetében ellenőrizze, hogy a weboldal tartalmaz-e kliens-oldali átirányítást eredményező kódot (pl. meta elemet vagy szkriptet).

  3. Az adott weboldalak URI-jára mutató minden egyes hivatkozás vagy algoritmikus hivatlkozás esetében ellenőrizze, hogy a hivatkozott URI nem okoz-e átirányítást VAGY aktivál-e időkorlát nélküli szerver-oldali átirányítást.
Elvárható eredmények
  • A 2. lépés hamis ÉS a 3. lépés igaz.


Teljesítési feltételek: