사용자 에이전트 문자열 변경, Chrome 및 Firefox가 영향을 줄이기 위해 취하고 있는 전략, 지원 방법
Chrome 및 Firefox 버전 100에 도달하게 됩니다 이로 인해 기기가 손상될 수 있습니다. 비즈니스 로직을 실행하기 위해 브라우저 버전을 식별하는 사이트 이 게시물에서는 이벤트의 타임라인, Chrome과 Firefox가 사용하는 전략 등을 다룹니다. 어떻게 도울 수 있을지를 살펴봅니다.
사용자-에이전트 문자열
사용자 에이전트 (UA)는 브라우저가 HTTP 헤더로 보내는 문자열이므로 서버는
브라우저를 식별합니다. 또한
navigator.userAgent
일반적으로 다음과 같은 형식으로 지정됩니다.
<browser_name>/<major_version>.<minor_version>
예: 게시 당시에 출시된 최신 버전의 브라우저와 게시물의 특징은 다음과 같습니다.
- Chrome:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36
- Firefox:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:96.0) Gecko/20100101 Firefox/96.0
- Safari:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Safari/605.1.15
메이저 버전 100: 3자리 버전 번호
메이저 버전 100은 Chrome과 Firefox 모두에서 중요한 출시입니다. 또한 2자리 숫자에서 1자리 숫자로 바꾸면서 웹사이트에 손상을 일으킬 가능성이 3자리 버전 번호. 웹 개발자는 모든 종류의 기술을 사용하여 커스텀 코드에서 사용자 에이전트 파싱 라이브러리를 사용하는 것까지 해당 처리 논리를 결정하는 데 사용할 수 있습니다. 이 사용자 에이전트 및 기타 버전 보고 메커니즘에서 3자리 버전 번호입니다.
버전 100 타임라인
버전 100 브라우저는 시험 버전 (Chrome 먼저 Canary, Firefox Nightly, 베타 버전, 그리고 안정된 버전을 다운로드해 보세요. 채널을 구독합니다.
브라우저 | 타임라인 |
---|---|
Chrome (출시 일정) | 2022년 3월 29일 |
Firefox (release 일정) | 2022년 5월 3일 |
3자리 버전 번호가 문제가 될 수 있는 이유는 무엇인가요?
브라우저가 버전 10에 처음 도달했을 때 12여 년 전, 수많은 문제가 메이저 버전 번호가 1에서 왔기 때문에 사용자 에이전트 파싱 라이브러리가 필요합니다. 변경할 수 있습니다
따라야 할 단일 사양이 없으면 다양한 유형의 브라우저가 사용자 에이전트 문자열 및 사이트별 사용자 에이전트 파싱에 사용됩니다. 그것은 일부 파싱 라이브러리에 하드 코딩된 가정이나 버그가 있을 수 있음 세 자리 주 버전 번호를 고려하지 않는 버전 많은 도서관 브라우저가 두 자리 버전 번호로 이동할 때 파싱 로직을 개선하여 3자리 마일스톤에 도달하면 문제가 줄어들 것으로 예상됩니다. 마이크 테일러, 일반적인 UA 파싱에 관한 설문조사를 실시한 결과 라이브러리를 제공합니다 진행 중인 Chrome 실험은 필드에 몇 가지 문제가 발생하여 해결 중입니다.
브라우저는 이에 대해 어떤 조치를 취하고 있나요?
Firefox와 크롬은 둘 다 브라우저 보고서가 메이저 버전 100에 위치하고 있으므로 웹사이트 중단 이로 인해 몇 가지 신고된 문제가 발생했습니다. 일부는 이미 수정되었습니다. 이러한 실험은 버전 100이 출시될 때까지 계속 실행됩니다.
버전 100에 대비한 백업 완화 전략도 있습니다. 웹사이트에 예상보다 더 많은 손상을 야기할 수 있습니다.
Chrome 완화
Chrome에서 백업 계획은 플래그를 사용하여 메이저 버전을 99로 고정하는 것입니다. 애플리케이션의 마이너 버전 부분에 실제 주 버전 번호를 사용자 에이전트 문자열 (코드에 이미 착륙).
사용자 에이전트 문자열에 보고된 Chrome 버전은
<major_version>.<minor_version>.<build_number>.<patch_number>
백업 계획이 사용된 경우 사용자-에이전트 문자열은 다음과 같습니다. 다음과 같습니다.
99.101.4988.0
또한 Chrome은 3자리 숫자 값이 보고되는지 확인하는 실험을 진행하고 있습니다. 문자열의 마이너 버전 부분에 있는 모든 숫자는 Chrome 사용자 에이전트 문자열에서 마이너 버전이 매우 오랫동안 0으로 보고됨 있습니다. Chrome팀에서 백업 옵션을 사용할지 결정합니다. 문제에 대한 적절한 조치를 취할 수 있습니다
Firefox 완화
Firefox에서는 중단이 얼마나 중요한지에 따라 전략이 달라집니다. Firefox
이
사이트 개입 메커니즘을 사용하는 것입니다.
Mozilla webcompat 팀은 다음과 같이 Firefox에서 깨진 웹사이트를 핫픽스할 수 있습니다.
메커니즘입니다. Firefox URL 표시줄에 about:compat
를 입력하면
문제를 해결하는 중입니다. 사이트의 메이저 버전이 100인 상태에서
대신 버전 99를 전송하여 문제를 해결할 수 있습니다.
중단이 널리 퍼지면 메이저 버전을 정지할 수 있음 있습니다. 가능한 여러 가지 전략이 있는데, 각 전략에는 장단점이 있습니다 Mozilla는 마이너 버전으로 실제 버전 번호를 전송할 수 있습니다. 문자열을 그대로 고정하거나 실제 버전 번호를 전송합니다. 다른 매개변수를 통해 전달됩니다.
사용자 에이전트 문자열에 복잡성을 더하는 모든 전략은 강력한 영향을 줄 수 있습니다 또 다른 별난 상황을 막기 위해 힘을 합쳐 있습니다.
어떻게 도울 수 있을까요?
Chrome 및 Firefox Nightly에서는 버전을 100으로 업데이트하고 문제가 발생하면 신고해 주세요.
메이저 버전을 100으로 보고하도록 Chrome 구성
chrome://flags/#force-major-version-to-100
페이지로 이동합니다.- 옵션을
Enabled
로 설정합니다.
메이저 버전을 100으로 보고하도록 Firefox Nightly 구성
- Firefox Nightly의 설정 메뉴를 엽니다.
- 'Firefox 100'을 검색합니다. 'Firefox 100 사용자 에이전트' String" 옵션을 선택합니다.
테스트 및 보고서 제출
- 웹사이트 유지관리자인 경우 Chrome으로 웹사이트를 테스트하세요. 및 Firefox 100에서만 사용할 수 있습니다. 사용자 에이전트 파싱 코드 및 라이브러리 검토 세 자리의 버전 번호를 처리할 수 있는지 확인합니다. Google은 Google Cloud에서 제공하는 손실되는 패턴을 확인할 수 있습니다.
- 사용자 에이전트 파싱 라이브러리를 개발하는 경우 파싱할 테스트를 추가합니다. 버전 100 이상이어야 합니다 초기 테스트 결과 최근 테스트한 올바르게 처리할 수 있습니다. 그러나 웹은 오랫동안 이전 버전의 파싱 라이브러리가 있는 경우 문제를 확인하고 최종적으로 업그레이드하는 데 시간이 걸립니다
- 웹을 탐색하는 경우 주요 소프트웨어 개발 도구 및 버전 100 webcompat.com에서 신고할 수 있습니다.