>  기사  >  웹 프론트엔드  >  새로운 구조화된 필드 RFC가 나왔고, 내 Javascript 패키지도 마찬가지입니다.

새로운 구조화된 필드 RFC가 나왔고, 내 Javascript 패키지도 마찬가지입니다.

Susan Sarandon
Susan Sarandon원래의
2024-10-05 10:39:02885검색

New Structured Fields RFC out, and so is my Javascript package

구조적 필드에 대한 새로운 RFC인 RFC9651이 출시되었습니다.

그것은 무엇입니까?

HTTP 헤더는 값이 얼마나 복잡한지 측면에서 모두에게 다소 자유로웠습니다.
자체 미니 파서가 필요한 많은 헤더와 함께 인코딩됩니다.

얼마 전부터 '구조화된 필드'라는 헤더에 대해 이 문제를 해결하려는 노력이 시작되었습니다. HTTP에는 헤더와 예고편이 모두 있기 때문에 '헤더'가 아니라 필드라고 합니다!

구조화된 필드를 사용하면 목록, 사전, 문자열, 숫자, 부울, 이진 데이터 등을 인코딩할 수 있습니다. 2021년의 원래 RFC는 꽤 성공적이며 많은 기존 헤더를 이 형식으로 개조할 수는 없지만 많은 새로운 표준이 이점을 활용하고 있습니다.

몇 가지 예:


// Parsed an ASCII string
Header: "foo"

// A simple string, called a 'Token' in the spec
Header: foo

// Parsed as number
Header: 5
Header: -10
Header: 5.01415

// Parsed into boolean
Header: ?1
Header: ?0

// Binaries are base64 encoded
Header: :RE0gbWUgZm9yIGEgZnJlZSBjb29raWU=:

// Items can have parameters
Header: "Hello world"; a="5"

// A simple list
Header: 5, "foo", bar, ?1

# Each element can have parameters
Header: sometoken; param1; param2=hi, 42

// A list can also contain lists itself. These are called 'inner lists' and
// use parenthesis
Header: sometoken, (innerlistitem1 innerlistitem2), (anotherlist)

// A simple dictionary
Header: fn="evert", ln="pot", coffee=?1

// Each item may have parameters too
Header: foo=123; q=1, bar=123, q=0.5

// A dictionary value may be an inner list again
Header: foo=(1 2 3)


지난주에 게시된 새로운 RFC에는 날짜와 2가지 새로운 데이터 유형이 추가되었습니다.
HTTP 헤더(및 트레일러) 형식에 맞는 유니코드 직렬화인 '표시 문자열'입니다.

// Parsed into a Date object<br>
Header: @1686634251

<p>// A Unicode string, called a 'Display String' in the spec. They use<br>
// percent encoding, but encode a different set of characters than<br>
// URLs.<br>
Header %"Frysl%C3%A2n"<br>
</p>




왜 관심을 가져야 합니까?

실제로 이러한 헤더가 발견되면 표준 파서를 사용하는 것이 좋습니다. 그 이유 중 하나는 구조화된 필드를 사용하면 내장된 확장 메커니즘이 있기 때문입니다. 새 매개변수가 나타날 때 애플리케이션이 갑자기 중단되지 않는지 확인하고 싶을 것입니다.

자신만의 HTTP 헤더를 정의하고 사용할 수도 있습니다. 구조화된 필드 형식은 '키 값 객체를 어떻게 인코딩해야 하는지' 또는 'UTF-8 문자열을 어떻게 인코딩해야 하는지'와 같은 결정을 제거하는 매우 좋은 '기본 선택'입니다.

모든 언어에 대해 파서가 표시되므로 고유한 일회성 형식을 작성하는 것에 대해 걱정할 필요가 없습니다.

자바스크립트 패키지

저는 "구조적 헤더"라고 불리는 구조적 필드용 Javascript 라이브러리의 관리자입니다. 이 라이브러리도 이 새로운 RFC를 위해 업데이트했습니다. "구조화된 필드"라는 이름을 선택하고 싶었지만 원래 표준이 이름을 변경하기 전에 이름을 선택했습니다.

이 새로운 유형을 지원하는 이 라이브러리의 v2를 방금 출시했으며 ES 모듈 지원도 추가했습니다.

댓글?

다음 중 하나에 응답하세요.

  • [마스토돈 포스트][4]
  • [블루스카이 포스트][5]

위 내용은 새로운 구조화된 필드 RFC가 나왔고, 내 Javascript 패키지도 마찬가지입니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.