> 백엔드 개발 > Golang > My Go 개발 서버의 요청 URL에서 호스트 및 구성표 속성이 비어 있는 이유는 무엇입니까?

My Go 개발 서버의 요청 URL에서 호스트 및 구성표 속성이 비어 있는 이유는 무엇입니까?

DDD
풀어 주다: 2024-12-13 15:48:25
원래의
216명이 탐색했습니다.

Why Are Host and Scheme Attributes Blank in My Go Development Server's Request URL?

개발 서버의 빈 호스트 및 스키마

Go 애플리케이션 개발 초기 단계에서 "hello, world" 코드를 사용하여 프레임워크에 익숙해지는 것은 흔한. 그러나 요청 URL에서 호스트 및 스키마 속성에 액세스하려고 하면 예기치 않은 공백 값이 발생할 수 있습니다. 왜 이런 일이 발생합니까?

Go의 HTTP 라이브러리는 요청의 원시 URL을 구문 분석합니다. 다음과 같은 상대 경로를 사용하여 서버에 액세스하는 경우:

GET / HTTP/1.1
Host: localhost:8080
로그인 후 복사

URL 개체의 Host 및 Scheme 필드는 비어 있습니다.

반대로, 프록시에서 서버에 액세스하는 경우 , 다음과 같은 절대 URL이 사용됩니다.

GET http://localhost:8080/ HTTP/1.1
Host: localhost:8080
로그인 후 복사

이렇게 하면 이러한 개체가 적절하게 모집됩니다. 필드.

HTTP 호스트를 얻으려면 http.Request 구조체의 Host 속성을 직접 사용하는 것이 좋습니다.

또한 URL 유형(상대 또는 절대)을 검사하여 확인할 수 있습니다. IsAbs() 메서드:

isAbsoluteURL := r.URL.IsAbs()
로그인 후 복사

이 검사는 두 시나리오를 구별하고 그에 따라 코드 논리를 안내하는 데 도움이 될 수 있습니다.

위 내용은 My Go 개발 서버의 요청 URL에서 호스트 및 구성표 속성이 비어 있는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿