본문 바로가기

봄보라

HTTP 기초. 요청과 응답의 기본구조

HTTP 의 기초에 대해 알아보자

 

HTTP란 Hyper Text Transfer Protocol 의 약자이다

 

HTTP 요청 메시지는 크게 3단계로 구성되어 있다

1단계) 메소드 | 요청 URI | 버전

1단계 중 첫번째인 '메소드'는 6개의 종류가 있다

  • GET 
  • POST
  • PUT
  • DELETE
  • HEAD
  • OPTIONS

 

1단계 중 두번째인 '요청 URI' 는 우리가 브라우저에 입력하는 도메인 주소를 의미한다

 

1단계 중 세번째인 '버전' 은 HTTP 요청의 버전을 의미한다. 예를 들어 'HTTP/1.1' 이란 형태로 요청된다

 

 

2단계) 헤더

헤더에는 아래처럼 여러 정보가 포함된다

  • Host : 서버의 도메인 이름과 포트
  • User-Agent : 클라이언트의 식별 정보
  • Accept : 클라이언트가 처리할 수 있는 컨텐트 타입
  • Accept-Language : 클라이언트가 처리할 수 있는 언어 종류
  • Accept-Encoding : 클라이언트가 처리할 수 있는 인코딩 방식 또는 압축 알고리즘
  • Referer : 이전 웹 페이지 URI
  • Content-type : 바디 정보의 종류
  • Content-Length : 바디 정보의 길이
  • Cookie : 키와 값으로 구성된 정보로 로그인 유지 등을 위해 사용된다

 

3단계) 바디

요청에 대한 데이터 부분. 헤더의 Content-Type 에 따라 바디 데이터의 형태가 달라진다

 

 

 

HTTP 응답 메세지도 3단계로 구성된다

1단계) 버전 | 응답코드 | 응답코드 텍스트
  • 버전 : 응답에 대한 HTTP 버전 정보. 요청 정보의 버전과 동일하다
  • 응답코드 : 정상 응답일 경우 '200' 으로 표시된다
  • 응답코드 텍스트 : 정상 응답일 경우 'OK' 형색으로 표시된다

 

2단계) 헤더
  • Set-Cookie : 클라이언트에 저장할 쿠키 정보
  • Expires : 클라이언트에 저장시킨 쿠키의 유효기간
  • Server : 웹서버의 정보
  • Secure : 쿠키의 암호화 지정 여부
  • Path : 쿠키의 경로
  • HttpOnly : 쿠키의 보안 속성 중 하나로 설정 시 JavaScript 에 의한 접근이 불가능하다
  • DENY : 설정시 프레임 내부에서 웹 페이지 표시 금지
  • SAMEORIGIN : 동일한 사이트의 요청만 프레임으로 표시
  • X-XSS-Protection : 크로스 사이트 스크립팅 공격일 경우 웹 사이트가 표시되는걸 차단
  • X-Frame-Options : iframe  등의 사용을 제어
  • X-Content-Type-Option : MIME : 스니핑을 차단하기 위해 사용되는 정보

 

3단계) 바디

응답에 대한 데이터

 

 

 

여기까지 HTTP 의 기초에 대해 알아봤다

 

브라우저에서 특정 사이트에 접속할 때 어떤 데이터로 요청이 전송되고 어떤 형태로 응답이 구성되어있는지 알아봤다

 

물론 이런적인거라 무슨 말인지 실감이 안될 수도 있지만 웹 개발을 해본 개발자라면 이해할 수 있을 거라고 생각한다

 

 

 

출처 : 이슈관리도구 봄즈 봄보라