HTTP/HTTPS

HTTP란
HyperText Transfer Protocol약자로 웹 상에서 데이터를 주고받기 위한 프로토콜이다. 클라이언트와 서버 간의 요청과 응답을 정의하며, 상태코드와 헤더를 포함한 다양한 요소를 가지고 있다.
특징
- 무상태성: HTTP는 상태를 유지하지 않는다. 각 요청은 독립적이며, 이전 요청의 정보를 기억하지 않는다. 이를 무상태(stateless)라고 한다.
- 확장성: HTTP는 다양한 확장 헤더를 추가하여 기능을 확장할수 있다.
- 유연성: HTTP는 다양한 데이터 형식을 전송할 수 있어요. 텍스트, 이미지, 비디오 등 여러 형식을 지원한다.

HTTPS란
SSL(Secure Socket Layer) 또는 TLS(Transport Layer Security)를 추가한 버전으로, 암호화된 통신을 제공합니다. SSL과 TLS를 사용하여 데이터를 암호화하여 다른 사용자가 key를 가로채지 못하도록 한다. 쉽게 말해 프로토콜에 보안 기능을 넣어준 것이다.
상태코드
HTTP의 상태코드는 서버가 클라이언트의 요청을 처리한 결과를 나타낸다. 상태코드는 세 자리의 숫자로 표시되며, 첫번째 자리에 따라 상태의 종류가 구분된다.
-
1xx: 정보
- 100: Continue
요청의 일부를 서버가 받았으며, 나머지를 계속 보내라는 의미다.
-
2xx: 성공
-
3xx: 리다이렉션
- 301: Moved Permanently
요청한 리소스가 영구적으로 새로운 URL로 이동했음을 나타냄.
- 302: Found
요청한 리소스가 임시로 다른 URL로 이동했음을 나타냄.
-
4xx: 클라이언트 오류
- 400: Bad Request
잘못된 요청임을 나타냄.
- 401: Unauthorized
인증이 필요함을 나타냄.
- 404: Not Found
요청한 리소스를 찾을 수 없음을 나타냄.
-
5xx: 서버 오류
- 500: Internal Server Error
서버가 요청을 처리하는 동안 오류가 발생했음을 나타냄.
- 502: Bad Gateway
서버가 게이트웨이 또는 프록시 역할을 하는 서버로부터 유효하지 않은 응답을 받았음을 나타냄.
메서드 및 Rest API
HTTP 메서드는 클라이언트가 서버에게요청의 성격을 알리는데 사용된다. REST API는 이러한 HTTP 메서드를 사용하여 CRUD작업을 수행한다.
- GET
- 설명: 서버로부터 데이터를 요청할 때 사용된다. 요청 데이터가 URL에 포함되어 전송되며, 주로 데이터를 조회할 때 사용된다.
- REST API에서의 사용: 특정 리소스를 조회할 때 사용된다.
- POST
- 정의: 서버에 데이터를 제출할 때 사용된다.
- 특징: 요청 데이터가 요청 본문에 포함되어 전송되며, 주로 데이터를 생성하거나 제출할 때 사용된다.
- REST API에서의 사용: 새로운 리소스를 생성할 때 사용된다.
- PUT, PATCH
- 정의: 서버의 데이터를 업데이트할 때 사용된다.
- 특징: 요청 데이터가 요청 본문에 포함되어 전송되며, 주로 기존 데이터를 수정할 때 사용된다.
- REST API에서의 사용: 기존 리소스를 수정할 때 사용된다.
- DELETE
- 정의: 서버의 데이터를 삭제할 때 사용된다.
- 특징: 주로 특정 데이터를 삭제할 때 사용된다.
- REST API에서의 사용: 특정 리소스를 삭제할 때 사용된다.
인증/인가
인증(authentication)
- 인증이란 서비스를 이용하려는 유저가 등록된 회원인지 아닌지 확인하는 절차다. 쉽게 말해 로그인같은 절차다.
인가(authorization)
- 인증을 받은 유저가 특정 리소스에 접근할 수 있는 권한이 있는지 확인하는 절차다. 특정권한을 받아 어떠한 행동을 취할수 있는지 없는지에 대한 확인행위라고 볼수 있다.