본문 바로가기

IT/RUBY

Ruby On Rails, HTTP 헤더 값을 얻는 방법

1. Ruby On Rails를 이용하여 HTTP Header 값을 얻는 방법

 

・ Rails 버전은 5.2.2를 사용하고 있습니다.

 

헤더를 확인하고 방법은, 아래의 포스트를 이용해주세요~

 

 

HTTP Header, 크롬에서 확인하는 방법

1. HTTP HTTP는 통상적으로 WEB 서버에 WEB 브라우저 등에서 클라이언트가 HTML로 쓰인 정보를 송・수신할 때에 사용되는 프로토콜입니다. HTTP는 Request와 Response로 나누어서 생각하는데 HTTP Request는 Web..

itbellstone.tistory.com

 

・ 예를 들어서, 클라이언트에서 Request 요청을 했을 때, x-user-name이라는 헤더명으로 BELLSTONE이라는 값을 보냈을 경우입니다.

 

1) 헤더 중 하나의 값을 얻을 경우

 

Request를 요청하였을 때에는 x-user-name 소문자와 -를 조합하여 보냈지만, 실제로 값을 사용할 때는 헤더명 앞에 HTTP와 대문자로 그리고, -는 _로 바꿔서 사용해야 합니다.

 

request.headers[:HTTP_X_USER_NAME]
#또는
request.headers["HTTP_X_USER_NAME"]
#결과
puts request.headers["HTTP_X_USER_NAME"] #=> BELLSTONE
puts request.headers[:HTTP_X_USER_NAME]  #=> BELLSTONE

 

2) request.env로부터 얻을 경우

 

・ env라면 header 대신 env를 사용하면 됩니다.

 

request.env[:HTTP_X_USER_NAME]

 

3) 헤더 전체 내용을 로그를 통해서 볼 경우

 

・ 마지막으로, request의 헤더 내용을 전부 확인하고 싶으시면, 아래와 같이 입력하시면 됩니다.

 

request.headers.sort.map { |k, v| Rails.logger.debug "#{k}:#{v}" }
#결과
HTTP_HOST:localhost:3000
HTTP_IF_MODIFIED_SINCE:
HTTP_IF_NONE_MATCH:
HTTP_UPGRADE_INSECURE_REQUESTS:1
HTTP_USER_AGENT:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
HTTP_VERSION:HTTP/1.1
...

 

・ 그럼 끝!