Día de Ruru
[JS]HTTP와 HTTPS, RESTful API 본문
1. HTTP와 HTTPS
HTTP(Hyper Text Transfer Protocol)란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜입니다. HTTP는 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로, 80번 포트를 사용하고 있습니다. 따라서 HTTP 서버가 80번 포트에서 요청을 기다리고 있으며, 클라이언트는 80번 포트로 요청을 보내게 됩니다.
HTTP는 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동합니다. HTTP는 상태를 가지고 있지 않는 Stateless 프로토콜이며 Method, Path, Version, Headers, Body 등으로 구성됩니다.
HTTPS는 HTTP에 데이터 암호화가 추가된 프로토콜입니다. HTTPS는 HTTP와 다르게 443번 포트를 사용하며, 네트워크 상에서 중간에 제3자가 정보를 볼 수 없도록 암호화를 지원하고 있습니다.
- HTTPS 통신과정
: 공개키 암호화 방식과 대칭키 암호화 방식의 장점을 활용해 데이터를 대칭키 방식으로 암복호화하고, 공개키 방식으로 대칭키를 전달하면서 사용합니다.
2. RESTful API
- REST란 자원을 이름을 구분하여 해당 자원의 상태를 주고받는 모든것을 의미합니다. 즉, HTTP URI를 통해 자원을 명시하고 HTTP Method를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것입니다.
- REST는 자원(HTTP URI), 메서드 (HTTP Method), 내용 (HTTP Message Pay Load)로 구성되어 있습니다.
- RESTful이란 REST API의 설계 규칙을 올바르게 지킨 시스템을 말하며 REST API는 REST의 원리를 따르는 API를 의미합니다.
REST API 설계 예시
1. URI는 동사보다 명사를, 대문자 보다는 소문자를 사용한다.
2. 마지막에 슬래시/를 포함하지 않는다
3. 언더바(_) 대신 하이픈(-)을 사용한다.
4. 파일 확장자나 행위는 URI에 포함하지 않는다.
'JS' 카테고리의 다른 글
[JS]보안과 개발 방법론 (0) | 2023.06.05 |
---|---|
[JS] 자료구조와 알고리즘, 데이터베이스와 ORM (0) | 2023.06.05 |
[JS]동기와 비동기, 스레드와 프로세스 (0) | 2023.05.31 |
[JS]이벤트 루프와 콜백함수 (0) | 2023.05.30 |
기술 면접 준비 Day 04 (0) | 2023.05.24 |