표준화

Canonicalization

컴퓨터 과학에서 표준화(때로는 표준화 또는 정상화)는 둘 이상의 가능한 표현을 가진 데이터를 "표준화", "정상화" 또는 표준화된 형태로 변환하는 과정이다. 이것은 동등성에 대한 서로 다른 표현을 비교하거나, 구별되는 데이터 구조의 수를 세거나, 반복적인 계산을 제거함으로써 다양한 알고리즘의 효율성을 향상시키거나, 의미 있는 정렬 순서를 부과하는 것이 가능하도록 하기 위해 할 수 있다.

사용 사례

파일 이름

파일 시스템의 파일은 대부분의 경우 여러 파일명을 통해 액세스할 수 있다. 예를 들어 Unix와 유사한 시스템에서는 문자열 "을 참조하십시오././"는 "으로 대체될 수 있다./". C 표준 라이브러리에서 함수는 realpath() 이 작업을 수행하십시오. 파일 이름을 표준화하기 위해 이 기능에 의해 수행되는 기타 작업은 /.. 상위 디렉토리와 관련된 구성요소, 다중 슬래시의 시퀀스 단순화, 후행 슬래시의 제거 및 심볼릭 링크의 분해능

파일 이름의 표준화는 컴퓨터 보안을 위해 중요하다. 예를 들어, 웹 서버는 cgi 디렉토리 아래의 파일만 제한한다. C:\inetpub\wwwroot\cgi-bin 실행될 수 있다. 이 규칙은 경로가 다음 항목으로 시작되는지 확인하여 시행된다. C:\inetpub\wwwroot\cgi-bin\ 그리고 그 후에야 그것을 실행한다. 파일이 있는 동안 C:\inetpub\wwwroot\cgi-bin\..\..\..\Windows\System32\cmd.exe 처음에 cgi 디렉토리에 있는 것으로 나타나며, 이 디렉토리는 .. 파일 실행 시 디렉터리 계층을 위로 이동하기 위한 경로 지정자 cgi-bin.허용 cmd.exe 실행은 가장 간단한 표현에 대한 파일 이름을 표준화하는 실패에 의해 야기된 오류일 것이다. C:\Windows\System32\cmd.exe, 디렉터리 트래버설 취약성이라고 한다. 경로가 표준화된 경우, 파일이 실행되지 않아야 함을 분명히 한다.

유니코드

유니코드에서는 많은 악센트 문자를 한 가지 이상의 방법으로 나타낼 수 있다. 예를 들어 é는 유니코드 문자 U+0065(LATIN SLIGHT LEAD E)에 이어 U+0301(COMBING ARCHTICE)로 유니코드로 나타낼 수 있지만, 사전 컴파일 문자 U+00E9(LATIN SLING READE E with ARCHTIC)로도 나타낼 수 있다. 이는 그러한 글리프를 포함하는 문자열의 가능한 모든 표현이 고려되어야 하기 때문에 문자열 비교를 더욱 복잡하게 만든다. 이를 다루기 위해 유니코드는 표준 등가성의 메커니즘을 제공한다. 이 맥락에서 표준화는 유니코드 정규화다.

유니코드 표준, 특히 UTF-8의 가변 폭 인코딩은 어떤 상황에서는 표준화의 추가 필요성을 야기할 수 있다. 즉, 기준으로, UTF-8오로지 하나의 유효한 바이트 시퀀스에서 유니 코드 character,[1]을 하지만 몇몇의 바이트 시퀀스가 잘못된 경우, i. e. UTF-8로. 어떤 부주의한 디코더 구현을 입력 및 출력까지 항의라도로 유효한 유니 코드 문자를 잘못된 바이트 시퀀스를 받아들일 것을 유니 코드 문자의는 모든 문자열을 인코딩에 의해 얻을 수 없습니다.r 그런 순서 만약 누군가가 그러한 디코더를 사용한다면, 일부 유니코드 문자는 유효 바이트와 유효하지 않은 바이트 시퀀스를 효과적으로 두 개 이상 가지고 있다. 이로 인해 이전 섹션에서 설명한 것과 유사한 보안 문제가 발생할 수 있다. 따라서 나중에 유효하지 않은 바이트 시퀀스를 허용하는 디코더에 전달될 UTF-8 문자열에 일부 필터(예: UTF-8로 작성된 정규식)를 적용하려면 문자열을 필터에 전달하기 전에 표준화된 문자열을 적용해야 한다. 이러한 맥락에서 표준화는 모든 문자열 문자를 유효한 단일 바이트 시퀀스로 변환하는 과정이다. 표준화의 대안은 유효하지 않은 바이트 시퀀스를 포함하는 문자열을 거부하는 것이다.

URL

정식 URL중복 콘텐츠에 대한 단일 진실의 출처를 정의하기 위한 URL이다.

Google에서 사용

정식 URL은 구글이 당신의 사이트에 있는 복제 페이지들의 집합에서 가장 대표적이라고 생각하는 페이지의 URL이다. 예를 들어, 동일한 페이지에 대한 URL이 있는 경우(예: https://example.com/?dress=1234 그리고 https://example.com/dresses/1234)), 구글은 표준으로 하나를 선택한다. 페이지들이 절대적으로 동일할 필요는 없다는 점에 유의하십시오. 목록 페이지의 정렬이나 필터링에서 사소한 변경으로 인해 페이지가 고유한 것은 아닙니다(예: 가격별 정렬 또는 항목 색상별 필터링).

정식은 복제본이 아닌 다른 영역에 있을 수 있다.[2]

검색 엔진은 다른 이유로 URL을 중복으로 취급할 수 있다. 예를 들어,

이러한 URL은 유사한 내용을 가질 수 있지만 Google은 이를 중복된 것으로 간주할 수 있다. 원본 페이지에 표준 URL을 추가하면 이 문제를 해결할 수 있다.

인터넷

표준 URL의 도움을 받아 검색 엔진은 쿼리 결과에 어떤 링크가 제공되어야 하는지 알고 있다.

표준 링크 요소는 표준 URL을 정의하는 데 사용될 수 있다.

인트라넷

인트라넷에서는 정보를 수동 검색하는 것이 지배적이다. 이 경우 표준 URL은 기계 판독이 불가능한 형태로도 정의할 수 있다. 를 들어 가이드라인에서.

미스크

표준 URL은 일반적으로 공유 작업에 사용되는 URL이다.

캐논 URL은 검색 엔진의 검색 결과에 사용되기 때문에 대부분의 경우 랜딩 페이지다.

검색엔진 및 SEO

웹 검색 및 검색 엔진 최적화(SEO)에서 URL 표준화는 두 개 이상의 가능한 URL을 가진 웹 콘텐츠를 다룬다. 동일한 웹 콘텐츠에 대해 여러 개의 URL을 보유하면 검색 엔진에 문제를 일으킬 수 있다. 특히 검색 결과에 표시할 URL을 결정하는 데 있어서 그렇다.[3] 대부분의 검색 엔진은 URL을 실제 버전으로 취급해야 하는 힌트로 캐논컬 링크 요소를 지원한다. 구글의 존 뮬러(John Mueller)가 지적했듯이, 로봇 노인덱스 요소와 같은 다른 지시사항을 한 페이지에 가지고 있으면 검색 엔진에게 표준화를 처리하는 방법에 대해 상반되는 신호를 줄 수 있다.

예:

이 모든 URL은 위키백과의 홈페이지를 가리키지만, 검색 엔진은 그 중 한 가지만 URL의 정식 형태로 간주할 것이다.

XML

표준 XML 문서는 정의에 의해 표준 XML 규격에 의해 정의되는 XML 형식이다. 간단히 말해서, 표준화는 태그 내의 공백을 제거하고, 특정 문자 인코딩을 사용하며, 네임스페이스 참조를 정렬하고, 중복된 문자 인코딩을 제거하며, XML과 DOCTYPE 선언을 제거하고, 상대 URI를 절대 URI로 변환한다.

간단한 예로는 다음과 같은 XML의 두 가지 스니펫이 있다.

  1. <node1 x='1' a="1" a="2">Data</node1 > <node2>Data</node2>
  2. <node1 a="2" x="1">Data</node1> <node2>Data</node2>

첫 번째 예제는 첫 번째 노드의 닫힘 태그에 여분의 공백을 포함한다. 표준화된 두 번째 예는 이러한 공간을 제거했다. 태그 내의 공간만 W3C 표준화에 따라 제거되며 태그 사이의 공간은 제거되지 않는다는 점에 유의하십시오.

표준화 변경의 전체 요약은 다음과 같다.

  • 문서가 UTF-8로 인코딩됨
  • 구문 분석 전에 입력 시 #xA로 정규화된 라인 중단
  • 유효성 검사 프로세서에 의한 것처럼 속성 값이 정규화됨
  • 문자 및 구문 분석된 도면요소 참조가 대체됨
  • CDATA 섹션은 해당 캐릭터 컨텐츠로 대체됨
  • XML 선언 및 문서 유형 선언이 제거됨
  • 빈 요소가 시작-끝 태그 쌍으로 변환됨
  • 문서 요소 외부 및 시작 태그와 끝 태그 내의 공백이 정규화됨
  • 문자 내용의 공백이 모두 유지됨(라인 피드 정규화 중에 제거된 문자 제외)
  • 속성 값 구분 기호가 따옴표로 설정됨(더블 따옴표)
  • 속성 값 및 문자 내용의 특수 문자는 문자 참조로 대체됨
  • 각 요소에서 불필요한 네임스페이스 선언이 제거됨
  • 각 요소에 기본 속성이 추가됨
  • 에 대한 수정 xml:base 특성이 수행됨
  • 각 요소의 네임스페이스 선언 및 속성에 사전 서열이 부과됨

전산언어학

형태학이나 사전편찬학에서 보조정리법단어들의 집합의 표준적인 형태다. 예를 들어 영어에서는 run, run, run, run, run은 같은 어휘소의 형태여서, run, 그 중 하나를 선택하여 모든 형식을 나타낼 수 있다. 유니텍스와 같은 어휘 데이터베이스는 이런 종류의 표현을 사용한다.

레마티제이션은 단어를 표준형식으로 변환하는 과정이다.

참고 항목

참조

  1. ^ RFC 2279: UTF-8, ISO 10646의 변환 형식
  2. ^ https://support.google.com/webmasters/answer/139066?hl=en
  3. ^ Cutts, Matt (4 January 2006). "SEO advice: url canonicalization". Matt Cutts: Gadgets, Google, and SEO. Retrieved 3 September 2013.
  4. ^ "Canonicalized URL is noindex, nofollow". Retrieved 20 April 2020.

외부 링크