1. HTTP
- 웹 상에서 데이터를 주고 받을 때 사용하는 프로토콜
- HTTP는 클라이언트가 요청을 생성하기 위한 연결을 연 다음 응답을 받을 때까지 대기하고,
클라이언트가 Request하면 서버가 Response 하는 클라이언트-서버 모델을 따른다.
- HTTP는 무상태 프로토콜이며, 이는 서버가 두 요청 간에 어떠한 상태나 데이터를 유지하지 않음을 의미한다. (상태를 유지하기 위한 노력으로 Cookie와 Session을 사용한다.)
- 일반적으로 안정적인 TCP/IP 레이어를 기반으로 사용하는 응용 프로토콜이다.
1-1. 요청메소드
GET
- 특정 리소스를 받기 위한 요청이다. 따라서, 리소스의 생성, 수정 및 삭제 등에 사용해서는 안된다.
POST
- 리소스를 생성하거나 컨트롤러를 실행하는 데 사용한다.
PUT
- 변경 가능한 리소스를 업데이트하는 데 사용되며 항상 리소스 식별 정보를 포함해야 한다.
PATCH
- 변경 가능한 리소스의 부분 업데이트, PUT을 사용해 전체 객체를 업데이트하는 것이 관례여서 거의 사용되지 않는다.
DELETE
- 특정 리소스를 제거하는 데 사용한다.
일반적으로 Request body가 아닌 URI 경로에 제거하려는 리소스의 ID를 전달한다.
1-2. 응답코드
- 1xx (조건부 응답)
- 2xx (성공)
- 3xx (리다이렉션 완료)
- 4xx (요청 오류)
- 403(Forbidden, 금지됨)
서버가 요청을 거부하고 있다. 예를 들자면, 사용자가 리소스에 대한 필요 권한을 갖고 있지 않다. (401은 인증 실패, 403은 인가 실패라고 볼 수 있음)
- 404(Not Found, 찾을 수 없음)
서버가 요청한 페이지(Resource)를 찾을 수 없다. 예를 들어 서버에 존재하지 않는 페이지에 대한 요청이 있을 경우 서버는 이 코드를 제공한다.
- 5xx (서버 오류)
2. HTTPS
- HTTP는 정보를 텍스트로 주고 받기 때문에 네트워크에서 전송 신호를 인터셉트 하는 경우 원하지 않는 데이터 유출이 발생할 수 있다. 이러한 보안 취약점을 해결하기 위한 프로토콜이 HTTP에 S(Secure Socket)가 추가된 HTTPS이다.
- 서버와 클라이언트 사이의 모든 통신 내용이 암호화
2.1 SSL과 TLS
SSL(Secure Socket Layer)
- 간단하게 말하면 들어오고 나가는 데이터들을 암호화하는 보안 기능을 갖고 있는 ‘보안 인증서’
TLS(Transport Layer Security)
- SSL이란 것의 업그레이드 버전이지만, ‘SSL이란?/TLS란?’ 하듯이 특별하게 구분하지 않고 일반적으로는 SSL이라고 말함. 그래서 보통 우리가 호스팅/도메인 업체에서 SSL이란 걸 산다는 게, SSL의 업그레이드 버전인 TLS를 산다는 거고, 이걸 SSL 인증서라고 흔히들 부른다고 보면 됨.
도메인에 SSL 인증서 없이 ‘https’를 사용할 수 없고, ‘http’로 표시될 수밖에 없음.