Unfortunately, your browser is too old to work on this site. Please upgrade your browser to view rich content, log in and reply.
그러나 저는 4일 전에만 출시된 최신 버전의 브라우저인 SeaMonkey 2.53.13을 사용하고 있습니다. Discourse가 이 브라우저를 지원하지 않기로 결정했을 수는 있지만, Discourse와 함께 작동하기에 "너무 오래되었다"고 말하는 것은 잘못되었습니다. 실제로 브라우저의 User-Agent 문자열을 오버라이드하면 모든 것이 정상적으로 작동하는 것처럼 보입니다.
문제는 Discourse 측의 부정확한 User-Agent 스니핑(인식)에 있는 것으로 보입니다. 기본적으로 SeaMonkey의 User-Agent 문자열은 Firefox 호환성을 광고합니다:
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0 SeaMonkey/2.53.13
User-Agent 문자열을 다음과 같이 변경하여 Firefox 호환성을 숨기면(편집 → 환경설정 → 고급 → HTTP 네트워킹 → User Agent String → Identify as SeaMonkey), SeaMonkey는 이제 눈에 띄는 문제 없이 다시 Discourse 사이트를 방문할 수 있습니다:
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 SeaMonkey/2.53.13
SeaMonkey와 같은 더 이상 주류가 아닌 브라우저에 대한 지원을 원하지 않을 수 있다는 점은 이해하지만, 이러한 브라우저가 Discourse 사이트에 접근하는 것이 능동적으로 차단되지 않는 것이 좋겠습니다. 그리고 이러한 브라우저가 능동적으로 차단되더라도, Discourse가 그렇게 하는 가짜 이유를 보고하지 않는 것이 좋겠습니다.
사용자 에이전트가 "너무 오래되었다"고 판단하기 전에 문자열의 끝까지 모두 확인하도록 User-Agent 스니핑을 개선해 주십시오. (현재는 User-Agent 문자열 내 위치와 무관하게 지원되는 브라우저의 이름과 버전을 찾는 것 같습니다.) 결국 Mozilla의 오래된 버전을 문자열의 처음에 보고한다고 해서 브라우저를 차단하지 않는 것처럼, Firefox의 오래된 버전을 문자열의 중간에 보고한다고 해서 브라우저를 차단할 이유가 무엇입니까?
스니핑 알고리즘을 변경하는 것이 어떤 이유로든 바람직하지 않거나 실용적이지 않다면, supposedly 호환되지 않는 user-agent를 감지했을 때의 동작을 변경해 주십시오: 사용자의 브라우저가 "너무 오래되었다"고 (아마도 잘못) 알려주고 추가 접근을 차단하는 대신, 사용자의 브라우저가 지원되지 않는다고 알려주고 지원되는 브라우저 목록으로 연결하되, 기존 브라우저를 사용하여 계속 진행할 수 있는 옵션을 제공해 주십시오.
개인적으로 이는 Discourse가 사용자 에이전트(user agent)를 확인하는 방식과 관련이 있을 가능성이 높습니다. Seamonkey가 Discourse와 호환되지 않는 구버전의 Firefox를 표시한다면, Firefox 헤더 옵션을 제공해서는 안 됩니다. 이는 아마도 Seamonkey 측의 잘못된 계획 때문이지, Discourse의 문제는 아닐 것입니다.
일반적으로 Duecourse는 UA 스니핑 대신 기능 검사(feature checking)를 통해 지원되지 않는 버전을 감지하려고 합니다.
Firefox의 이전 버전에서 composer와 관련된 최근 문제로 인해, 특정 Firefox 버전에 필요한 기능이 지원되는지 묻게 되면 해당 버그가 있는 버전이 실제로는 제대로 작동하지 않음에도 불구하고 해당 기능이 지원된다고(기술적으로는 정확하게) 기꺼이 응답하기 때문에, UA 스니핑을 사용해야 했습니다.
여기서 문제는 Seamonkey가 실제로 호환되는 버전이 아니라 훨씬 오래된 Firefox 버전과 호환된다고 웹사이트에 기본적으로 보고한다는 점입니다.
그렇게 단순하지 않다고 생각합니다. 특정 버전의 SeaMonkey가 특정 버전의 Firefox와 호환된다고 광고하는 이유는 두 브라우저 버전이 동일한 코어 코드베이스를 공유하기 때문입니다. 일반적으로 해당 버전의 SeaMonkey는 해당 버전의 Firefox가 할 수 있는 모든 것을 최소한 수행할 수 있다고 가정할 수 있습니다. 이러한 기본 호환성 외에도, 특정 버전의 SeaMonkey는 Firefox의 후기 버전들이 지원하는 특정 기능을 지원할 수 있지만, 모든 기능을 지원하는 것은 아닙니다. 따라서 SeaMonkey가 명시적으로 해당 후기 버전들과 호환된다고 광고하는 것은 사실과 맞지 않으며(일반적으로 도움이 되지 않으며) 적절하지 않습니다.
요약하자면, 새로운 브라우저가 오래된 브라우저와 호환된다고 광고한다고 해서 새로운 브라우저가 더 새로운 기능을 지원하지 않는다는 의미는 아닙니다. 다시 말해, 오늘날 대부분의 브라우저가 Mozilla/5.0과 호환된다고 광고하지만, 그것이 고대 엔진이 할 수 있는 것에만 엄격히 제한된다는 의미는 아닙니다.
UA 스니핑의 대안 중 하나로, Firefox의 버전에 근접한(89 → 91) 버전을 매칭하는 window.visualViewport 기능 감지 방식을 사용할 수 있습니다. 이 방식으로 전환할 수 있을까요? 하지만 그렇다면 1월까지 Safari 12.5에 대한 우회 처리를 추가해야 합니다
그렇게 표현된 것과는 다릅니다. 제 브라우저는 “오래된” 것이 아니고 "업그레이드"할 필요도 없기 때문입니다. 최소한 다음과 같이 문구를 수정하는 것이 좋겠습니다. “지원되지 않는 브라우저를 사용 중인 것으로 보입니다. 리치 콘텐츠 표시, 로그인 및 답변 작성을 위해 지원되는 브라우저로 전환해 주세요.”