Web Study/Theory

HTTP 헤더 구조와 GET과 POST 메소드 방식

MUSA 2023. 12. 17. 21:23
반응형

※ 본 내용은 공부 목적으로 작성된 내용입니다 ※ 잘못된 부분이 있으면 언제든지 댓글로 알려주세요!

 

이번에는 HTTP 헤더 구조에 대해 살펴보겠습니다

 

HTTP 헤더 구조

 

HTTP는 브라우저와 서버가 통신할 수 있도록 하는 프로토콜입니다

이때 HTTP는 서버에 요청(Request) 할 때 요청 행과, 요청 헤더, 메시지 본문이라는 세 가지 정보를 담아서 요청하게 됩니다

 

📝 HTTP 요청 메시지 ( Request )

 

 

요청행 : HTTP 메소드, HTTP 버전

요청 헤더 : HTTP 요청에 대한 정보를 담고 있습니다 (서버에 전달하는 클라이언트 정보)

[ 요청 헤더에 포함된 정보 ]

host: www.naver.com // 요청 도메인
User-agent: MSIE 6.0; Windows NT 5.0 // 사용자 웹 브라우저 종류
Cookie: key:value // 쿠키 (인증정보)
Accept: text/html; */* //요청 데이터 타입

 

공백 행 : 메시지 본문 Body 부분이 있다면 공백행이 추가됩니다 (헤더와 본문의 경계를 표시함)

메시지 본문 : HTTP Request가 전송하는 데이터를 담고 있습니다

 

요청 메시지는 GET과 POST 메소드 방식이 있는데 대부분 웹 페이지에서 GET 방식을 많이 사용하고 폼 등을 사용해서 데이터를 전송할 때는 POST 방식을 사용합니다

 

 

📝 HTTP 응답 메시지 ( Response )

 

 

응답 행 : HTTP 상태 코드 및 버전

[ 응답 헤더에 포함된 정보 ]

Server : 웹 서버의 종류
Referrer-policy : 서버의 Referrer 정책을 알려준다
www-Authenticate : 사용자가 정보를 요청할 시 서버가 제공하는 인증 방식
Proxy-Authenticate : 요청한 서버가 프록시 서버일 경우 유저 인증을 위한 값

 

공백 행과 메시지 본문은 HTTP 요청 메시지와 동일합니다


 

추가로 특정 HTTP 요청이 성공적으로 연결되었는지 알려주는 상태 코드가 있습니다

 

분류 상태 코드 상태 설명 내용
성공 200 OK 요청을 성공함
클라이언트 오류 401 unauthorized 인증되지 않음
403 Forbidden 액세스가 허용되지 않음
404 Not Found 요청한 리소스를 찾지 못함
408 Request Timeout 요청 시간을 초과함
서버 오류 500 Internal Server Error  서버 내부에서 오류가 발생함
503 Service Unavailable 서비스를 일시적으로 사용할 수 없음

 

클라이언트 오류는 대부분 특정 페이지에 접속했을 때 많이 보셨을 거라 생각합니다


 

💻 GET 메소드와 POST 메소드

 

앞서 HTTP 헤더 구조에서 요청 메시지는 GET과 POST 메소드 방식이 있다는 걸 설명했는데 이 GET 메소드와 POST 메소드가 어떤 식으로 작동되는지 알아봅시다

 

 

GET 메소드 : URL + Query String을 사용하여 웹 페이지에 데이터를 요청하게 됩니다

이때 필요한 데이터를 메시지 부분(Body)에 담지 않고 Query String의 붙여서 전송하기 때문에 보안적인 문제가 있고, URL 입력란에 길이 제한이 있습니다

 

Query String란 URL ? 뒤에 있는 파라미터 값(매개변수)을 의미합니다

ex) http://text.com/index.asp?cmd=view에서 ? 뒤에 있는 cmd=view 값을 의미합니다

 

 

POST 메소드 : GET 방식과 달리 데이터를 메시지 부분(Body)에 담아서 데이터를 전송합니다 이때 Query String 부분이 Body로 넘어가기 때문에 GET 메소드 보다 보안적인 면에서 안전하고, Body는 길이 제한 없이 데이터를 전송할 수 있습니다 (GET 메소드와 달리 대용량 데이터 전송 가능)

 

 

HTTP 응답 메시지에서 GET 방식과 POST 방식을 위 사진처럼 작동되게 됩니다

 

처리 방식 GET 방식 POST 방식
URL 데이터 노출 여부 O X
URL 예시 http://text.com/index.asp?contents=1 http://text.com/index.asp
데이터의 위치 Header(헤더) Body(바디)
캐싱 가능 여부 O X

 

GET 방식은 데이터 위치가 Header에 존재하고,

POST 방식은 데이터 위치가 Body에 존재합니다

 

 

 

📕 용어 정리 

  • 캐싱(Caching) : 데이터를 한번 접근 후, 다시 요청할 때 빠르게 접근하기 위해 레지스터에 데이터를 저장시켜 놓는 것을 뜻함
  • 레지스터(Register) : 프로세서가 바로 사용할 수 있는 데이터를 담고 있는 영역

 

[ 참고 자료 ]

 

반응형