본문 바로가기
Web/Web

HTTP(HyperText Transfer Protocol) 란?

by jjudy 2021. 11. 18.

HTTP 란?

 

  • HyperText Transfer Protocol 의 약어이다.
  • 웹에서 이루어지는 통신을 정의한 프로토콜, 즉 통신 규약이다.
  • 인터넷 상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따른다.
  • 클라이언트란 요청을 보내는 쪽을 의미하고, 서버는 요청을 받는 쪽을 의미한다.
  • Request 와  Response 구조로 나뉜다.

 

 

 

HTTP의 특징

 

  • HTTP 통신의 특징은 기본적으로 연결이 되어 있지 않다.
  • 클라이언트가 서버에 요청을 보내고 응답을 받으면,  그것으로 통신이 종료된다.
  • 서버는 클라이언트가 웹 사이트에 접속해 있는지 알 수가 없다.

 

 

 

HTTP Request 구성

 

  • Start line, Headers, Body 3부분으로 구성된다.
  • Start line 은 HTTP Method(서버에 요청 시 수행하는 방식), Path, HTTP Version 으로 구성된다.
  • Headers 는 해당 request에 대한 추가 정보를 담고 있는 부분이다.
  • Body는 해당 request의 실제 메시지/내용을 담고 있다. (GET 메소드 요청 시에는 Body 부분이 없다.)

 


HTTP Method의 종류

 

①  GET주로 데이터를 읽거나 검색할 때 사용한다.  즉, 오로지 데이터를 읽을 때만 사용되고 수정할 때는 사용하지 않는다.  GET 요청이 성공적으로 이루어지면 →  200 OK 응답 코드가 리턴,  에러 발생 시 →  404(Not Found) 나 400(Bad request) 응답 코드가 리턴

 

  • GET 요청 시 서버에 보낼 데이터가 URI 에 붙는다. 즉, 쿼리(파라미터) "?key=value" 까지 같이 날아간다.
  • 매개변수 값이 URI에 포함되기 때문에 URI 인코딩을 설정해야 한다.
  • 요청 라인과 요청 헤더에 최대 크기 제한이 있기 때문에 대용량 데이터 전송이 불가하다.
  • 주소창에 사용자가 입력한 정보가 그대로 노출되는 보안 문제가 있고  이미지, 동영상 같은 바이너리 파일의 데이터는 URL에 붙여서 보낼 수 없다.

 

 

 

②  POST주로 새로운 리소스를 생성할 때 사용한다.  POST 요청이 성공적으로 이루어지면 →  201(Created)  응답 코드가 리턴

  • URL에 데이터가 포함되지 않아 외부에 정보가 노출되지 않는다.
  • 메시지 본문에 데이터를 포함한다.  →  메시지 body 부분에 담긴다.
  • 바이너리 및 대용량 데이터 전송이 가능하다.

 

 

 

③  OPTION :  요청하는 리소스가 허용하는 메소드 목록을 반환한다.   예)  어떤 페이지가 GET 메소드만 허용하는 경우,  GET 이 반환된다.      

 

④  HEAD :  GET 메소드와 동일하지만, Response 의 Header 부분만 받는다.  예를 들어, 서버의 상태를 확인할 때 사용한다.

 

⑤  PATCH :  특정 리소스 내용 중 보낸 값의 key 만을 변경한다. 

 

⑥  DELETE :  특정 데이터를 서버에 삭제 요청 보낼 때 사용한다.


 

 

 

HTTP Response 구성

 

  • Start line, Headers, Body 3부분으로 구성된다.
  • Start line 은 HTTP Version, Status code(응답 상태 숫자 코드), Status text 으로 구성된다.
  • Headers 는 해당 response 에 대한 추가 정보를 담고 있는 부분이다. Server가 header 값으로 사용한다.
  • Body는 해당 response의 실제 메시지/내용을 담고 있다. 

 

 

 


Status code의 종류

더 많은 status code 는 아래 ...

https://developer.mozilla.org/ko/docs/Web/HTTP/Status


 

 

 

HTTP와 HTTPS 의 차이

 

  • HTTP암호화가 되지 않은 평문 데이터를 전송하는 프로토콜이다. HTTP로 개인정보 등을 주고 받으면 제 3자가 정보를 조회할 수 있다는 보안 취약점이 발생한다.
  • HTTPS 인터넷 상에서 정보를 암호화하는 SSL 프로토콜을 이용하여 웹 클라이언트와 서버가 데이터를 주고 받는 프로토콜이다.

 

'Web > Web' 카테고리의 다른 글

웹 해킹 워게임 사이트  (0) 2022.11.23
URL? URI? URN?  (0) 2021.12.10
WEB 이란?  (0) 2021.11.16
Rest API란? Restful API란? Rest API vs Restful API  (0) 2021.11.02

댓글