은 기본적으로 당신은 대상 URL에 대한 HTTP를 HEAD
요청을 수행하고이 허용 응답 코드을 가지고 있는지 확인해야합니다. 허용되는 응답 코드는 OK (200), 일시적으로 이동 (???) 및 기타 코드가있을 수 있습니다.
왜 HEAD
? GET
은 전체 페이지를 다운로드하므로 HEAD
은 HTTP 헤더 만 다운로드합니다. 시간이 오래 걸리며 시간은 친구가 아닙니다. 유효성 검사는 매우 신속하게 수행되어야하며 HTTP 요청을하는 데는 시간이 걸립니다. 몇 초 동안 (또는 서버 및 네트워크 부하에 따라 그 이상) 사용자는 무슨 일이 일어나고 있는지 궁금해하고 좌절 할 것입니다. 애니메이션 진행률 표시기 중 하나를 표시 할 수 없다면 입력을 확인하는 데 시간이 걸릴 수 있습니다.
패스워드가 입력 컨트롤을 벗어나고 결과가 표시되는쪽에 애니메이션 표시기가 있으면 백그라운드 AJAX 호출에서 값의 유효성을 검사하는 암호 강도 검사기와 같이해야합니다. 그 동안 사용자는 다른 정보를 기입 할 수 있습니다.
코드 것 같은 것을 :
public class UrlExistenceValidator ... {
public boolean isValid(Object object) {
if (!(object instanceof String)) {
return false;
}
final String urlString = (String) object;
final URL url = new URL(urlString);
final HttpURLConnection huc = (HttpURLConnection) url.openConnection();
huc.setRequestMethod("HEAD");
huc.connect();
final int code = huc.getResponseCode();
return code != 404;
}
}