JAVA/웹 개론

HTTP Protocol

개발자잡 2022. 6. 29. 17:39

HTTP(Hyper Text Transfer Protocol)로 RFC 2616에서 규정된 Web에서 데이터를 주고 받는 프로토콜.

이름에는 하이퍼텍스트 전송용  프로토콜로 정의되어 있지만 실제로는 HTML, XML, JSON, Image, Voice, Video, Javascript, PDF 등 다양한 컴퓨터에서 다룰 수 있는 것은 모두 전송 할 수 있다.

또한 HTTP는 TCP를 기반으로 한 REST의 특징을 모두 구현하고 있는 Web 기반의 프로토콜이다.

 

HTTP는 메시지를 주고(Request) 받는(Response) 형태의 통신 방법이다.

 

클라이언트는 서버에 요청을 하고 

서버는 요청을 받는다.

 

HTTP의 요청을 특정하는 Method는 8가지가 있다.

 

REST를 구현하기 위한 인터페이스이니 알아둬야 한다.

멱등성: 서버에 몇번을 요청을 하더라도 같은 요청이 돌아오는 성질.

 

응답의 상태를 나타내는 코드

 

1XX: 처리중

처리가 계속 되고 있는 상태, 클라이언트는 요청을 계속 하거나 서버의 지시에 따라서 재요청

2XX: 성공

요청의 성공

3XX: 리다이렉트

다른 리소스로 리다이렉트, 해당 코드를 받았을 떄는 Response의 새로운 주소로 다시 요청

4XX: 클라이언트 에러

클라이언트의 요청에 에러가 있는 상태, 재전송 하여도 에러가 해결되지 않는다.

5XX: 서버 에러

서버 처리중 에러가 발생한 상태, 재 전송시 에러가 해결 될 수도 있다.

 

자주 사용되는 코드

200: 성공

201: 성공. 리소스 생성 성공

301: 리다이렉트, 리소스가 다른 장소로 변경됨을 알림.

303: 리다이렉트, Client에서 자동으로 새로운 리소르로 요청 처리

400: 요청 오류, 파라미터 에러

401: 권한 없음(인증 실패)

404: 리소스 없음(페이지를 찾을 수 없음)

500: 서버 내루 에러(서버 동작 처리 에러)

503: 서비스 정지(점검 등등)

 

웹 개론은 쉽지만 반드시 알아야한다.

REST 개념은 무조건 숙지.

그래야 좋은 REST API를 만들 수 있고 서버 아키텍쳐를 설정할 수 있다.

자잘한 실수를 하지 않기 위해 URI 설계 패턴 또한 중요하다.

HTTP METHOD의 특징 또한 숙지하자.

이 프로토콜에 활용을 하려면 어떠한 메소드를 쓸지 결정해야 하고 통신할 때 사용해야 하고 HTTP 스테이터스 코드도 마찬가지이다. 올바른 스테이터스 코드를 내려줘야하고 어떠한 작업을 할 지 결정하는 기초가 되기 때문에 반드시 숙지하자.