사용자로부터 URI/URL 문자열을 가져와 작동하는 정식 양식을 결정하는 방법을 찾고 있습니다 (또는 자원이 유효한). 동시에 URL이 있는지도 확인해야합니다. 그래서 우리는 유효한 "문법"과 존재를 확인하고 있습니다. 예를 들어Ruby에서 URI/URL을 용서하게 표준화하는 방법
는 google.com
같은 문자열은 http://www.google.com
로 전환해야하며, google.com/insights
같은 문자열은 http://www.google.com/insights
로 전환해야합니다. http://thiswebsitedoesntexistatall.com
과 같은 문자열은 일종의 오류나 예외를 반환합니다.
200 OK
상태가 될 때까지 솔루션의 일부가 HTTP get_response()
메서드를 호출하고 리디렉션되는 것으로 보입니다.
URI.parse()
방법은 http
을 벗어나는 것을 용인하지 않는 것 같습니다. http
을 앞에 추가하는 간단한 방법을 쓸 수 있다는 것을 알았지 만, URL에 대해 정말로 용서할 수있는 일부 기존의 보석 또는 거의 알려지지 않은 라이브러리 기능이 있었으면 좋겠다.
net/http
과 HTTParty
모두 내가 찾고있는 것에 너무 엄격한 것 같습니다. 이것을 할 수있는 좋은 방법이 있습니까?
답변 해 주셔서 감사합니다. 첫 번째 요점에 관해서는 - 나는 완전히 동의합니다. 나는 다른 프로토콜을 받아 들여야한다고 생각한다. 그래서 나는 http를 앞쪽으로 밀고 싶지 않다. 즉, 하루가 끝날 무렵 http가 실제로 관심이있는 것 같습니다. 두 번째 문제는 페이지가 누락 된 경우 200 대신 404가 표시된다는 것입니다. 200 응답은 유효한 페이지이고 존재하지만 다른 응답 코드를 사용해야한다는 것을 암시합니다. 세션 데이터에 대해 제기하는 요점은 흥미로운 것입니다 ... 나는 그것에 대해 생각해야 할 것입니다. 감사! – aardvarkk
사이트가 404 또는 200을 반환하는지 여부는 HTTPd가 오류를 반환하도록 허용하는지, 아니면 HTTPd가 오류를 가로 채고 가로 채어 "친숙하고 친절한"오류 페이지 중 하나로 리디렉션하는지에 따라 다릅니다. 잘못하고 404를 반환하는 올바른 일을하지 마십시오. 200은 인간에게는 문제가되지 않지만 [코드를 처리하는 데 어려움이 있습니다] (http://gsitecrawler.com/articles/error-404-200.asp). 따라서 "해야 할 것"은 우리가 누구를 다루고 있는지에 달려 있습니다.불행히도 개발자와 사용자는 일반적으로 콘텐츠에 대해 말하지 않습니다. –
FYI와 마찬가지로 사이트를 다루고 웹 사이트 분석 코드를 작성하고 작성하는 많은 어려운 지식에 대한 응답을 기반으로합니다 ... 200 개의 다른 거미 및 어딘가의 어딘가에 있습니다. RFCs와 specs가 있습니다. 그리고 현실이 있습니다. 우리는 훈련받지 않거나 무지한 페이지 개발자의 결과물을 다루기 위해 현실을 위해 프로그램해야합니다. –