구조적 필드에 대한 새로운 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 모듈 지원도 추가했습니다.
다음 중 하나에 응답하세요.
위 내용은 새로운 구조화된 필드 RFC가 나왔고, 내 Javascript 패키지도 마찬가지입니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!