개인공부/[Web] / / 2020. 11. 19. 16:41

HTTP의 구조

1.HTTP(Hyper Text Transfer Protocol)란

  • 하이퍼텍스트(HTML)를 교환하기 위해 만들어진 통신규약
  • 웹상에서 네트워크 통신을 원활하게 하기 위해 서로 미리 규정해놓은 통신 구조이다.
  • HTTP는 TCP/IP 구조로 되어있다.

2. HTTP에 대해서

2.1 HTTP 통신 방식

  • 기본적으로는 요청/응답 구조로 되어있다.
  • Client가 Server로 HTTP 요청을 보내면 Server는 Client에게 응답하는 방식
  • HTTP는 Stateless 이다.
  • Stateless는 상태를 저장하지 않는 뜻으로 해당 요청에 대한 응답만 존재할뿐 이전 요청에 대한 정보를 저장하고 다른 요청과 연결되지 않는다.
  • 그래서 여러 요청과 응답에 대해 진행과정이나 데이터가 필요할 때는 쿠키 or세션을 사용한다.

2.2 HTTP 요청 구조

  • 요청은 크게 start line, headers, body로 구성되어있다.

2.2.1 start line

  • HTTP의 첫 라인으로 3 부분으로 되어있다.
  • 예시) GET/user/logout HTTP/1.1 (메서드/URI/HTTP버전)

 

2.2.2 Headers

  • 해당 요청에 대한 추가 정보를 담고 있는 부분으로 요청의 Length 등의 정보가 담겨있음
  • KEY:VALUE값으로 되어있다
  • Host: 요청이 전송되는 target의 URL
  • User-Agent: 요청을 보내는 클라이언트의 정보 (웹브라우저에 대한 정보)
  • Accept: 해당 요청이 받을 수 있는 응답 타입
  • Connection: 해당 요청이 끝난 후에 클라이언트와 서버가 계속해서 네트워크 커넥션을 유지할지 말지 
  • Content-Type: 해당 요청이 보내는 메시지 boyd의 타입. (json이 여기에 해당)
  • Content-Length: 메세지 body의 길이

 

2.2.3 Body

  • 해당 요청의 실제 메세지 내용이다.
  • body가 없는 요청도 많다 예를 들어 GET 요청은 대부분 body가 없다.

 

2.3 HTTP 응답 구조

응답도 요청과 마찬가지로 3 부분으로 구성되어 있다. status line, header, body

 

2.3.1 Status Line

  • HTTP 응답의 첫 라인으로 3 부분으로 되어있다.
  • 예시) HTTP/1.1 404 Not Found ( HTTP버전 / Status code-응답 상태 / Status text-응답 상태 설명)

2.3.2 Headers

  • 요청의 Headers와 동일하다.
  • 다만 응답에서만 사용하는 Header정보들만 들어있다.

2.3.3 Body

  • 요청의 Body와 동일하다
  • 요청과 마찬가지로 응답의 Body는 비어있을 수 있다.(데이터 전송을 할 필요가 없는 경우)

3.HTTP Status Code

200 OK

  • 문제없이 실행된 경우

301 Moved Permanently

  • 해당 URI가 다른 주소로 바뀐 경우

400 Bad Request

  • 해당 요청이 잘못 보내졌을 경우 
  • 주로 요청에 값들이 잘못 보내진 경우 ex) Age에 int값이 아닌 text가 주어진 경우

401 Unauthorized

  • User가 해당 요청에 인증이 안 된 경우 ex) 로그인, 회원가입 

403 Forbidden

  • User가 해당 요청에 권한이 없는 경우 ex) 과금 유저에게만 렌딩 할 경우 

404 Not Found

  • 요청된 URI가 존재하지 않는 경우

500 Internal Server Error

  • 서버에서 에러 가난 경우

 

'개인공부 > [Web]' 카테고리의 다른 글

웹 URL입력시 네트워크 과정  (0) 2020.10.15
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유