조진표
306
2021-04-14 10:32:11
1
65

http header field name 대소문자 문제


얼마전 회사에서 발생한 이슈를 해결하면서 몇가지 궁금한 점이 생겼는데요, 아시는 분은 조언해주시면 감사하겠습니다.


- 문제

GCP에 A,B api 서버가 운영되고 있는데, A -> B에게 {API_KEY: "asdasd"}를 http header에 담아서 요청을 보낸 상황입니다. B서버에서 API_KEY를 api_key로 받으려고 하는데 해당 값이 넘어오지 않습니다. 그냥 빈 객체만 넘어오는 상황입니다. 해결은 {key:"asd"}로 수정하여 B 서버에서 key로 받았습니다.


- 궁금한 점

1. 관련 이슈를 검색해보니 "http header field name은 대소문자를 구별하지 않는다"고 나와있는데 이 말은 즉, http header filed를 모두 소문자로 변환한다는 의미인가요 ? 


2. 소문자로 변환한다면 API_KEY는 왜 api_key가 안되는 걸까요 ? 예상으로 가운데 "_"가 있어서 그런 것 같은데 정확하지는 않습니다.


3. A -> B에서 요청을 보낼 때, A가 GCP 환경이 아닌 local 환경에서 요청을 보내면 API_KEY가 api_key로 잘 받아지는데 이유를 알 수 있을까요 ?


감사합니다. 


0
  • 답변 1

  • 캐티
    2k
    2021-04-14 10:57:55

    소문자로 변환해서 비교하거나 대문자로 비교해서 변환 하는 방법이 있을꺼빈다.
    노드js -> 기본 소문자 변환
    웹에서 사용할때 대소문자 제약이 없어서 Content-Type 이나 ConTENT-Type 처럼 트롤링을 하여도 정상적으로 인식이 되빈다. DPI 우회 기법중에서도 HoST 처럼 일부러 하기도 하빈다.

    value 영역은 대소문자를 건드리지 않스빈다.

    3번은 이상한 얘기 하시는것 같스빈다. 내부 서비스는 다른 사람들이 알수 없으니 직접 라우팅되는 과정을 잘 살펴보아야 하지 않는쩌여.

  • 로그인을 하시면 답변을 등록할 수 있습니다.