HTTP; HyperText Transfer Protocol
HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜 웹 브라우저를 켰을 때에 사이트에 접속할 때에도 HTTP 라는 규약을 따르게 됩니다. POP3, SMTP, IMAP 을 사용하면 이메일과 관련된 작업을 하는 것처럼 HTTP 를 사용하게 된다면 웹과 관련된 작업을 한다는 것을 표현하는 것 HTTP 는 크게 요청 (HTTP Request; 보통 한 컴퓨터가 다른 컴퓨터에 리소스 요청을 보낼 때 사용되는 말)과 응답 (HTTP Response)으로 나뉘어져 있다.
HTTP Request
CRUD 에 사용되는 HTTP 메소드
C: create
R: read
U: update
D: delete
- GET : 특정 리소스를 달라고 할 때에 사용
예시: 페이지 로딩할 때 - POST : 서버 측의 특정 리소스를 저장할 때 사용
예시: 회원가입을 할 때에 특정 유저의 정보를 서버에 저장 - PUT/PATCH : 서버 측의 특정 리소스를 업데이트 할 때 사용.
- PUT 은 데이터 전부를 바꿀 때
- PATCH 는 부분적으로 변경할 때
예시: 사용자 닉넴임 변경, 장바구니 item 수량변경
- DELETE : 서버 측의 특정 리소스를 삭제할 때 사용됩니다.
예시: 유저 탈퇴
GET 이나 DELETE 와 같은 경우에는 주소에만 데이터를 담아 넘길 수 있다. 복잡한 데이터 형태를 넘기기에는 제한있음.
API 를 제작할 때에는 보통 REST 가이드라인을 따라 제작이 됩니다. 그리고 API 는 보통 해당 REST 가이드라인을 따라 HTTP 메소드들을 사용
HTTP Response
클라이언트 측에서 요청을 보내게 되는 경우 서버 측에서도 다양한 응답을 보내게 됩니다. 각 응답은 기본적으로 상태 코드 (Status Code) 라는 것을 가지고 있습니다. HTTP 요청에 대한 상태가 어떤지 알려주는 것이죠. 상태 코드는 총 5개의 종류로 나누게 됩니다.
100 번대 : 정보 응답
200 번대 : 성공 응답
300 번대 : 리다이렉션 메시지
400 번대 : 클라이언트 에러 응답
500 번대 : 서버 에러 응답
응답을 보낼 때에는 상태 코드도 있지만 때에 따라 문자열이나 JSON 등을 이용해서 데이터를 함께 실어서 보내기도 합니다.
HTTP 예시
웹 페이지를 열어서 개발자 도구를 연 뒤에 네트워크 탭으로 들어가면 실제로 보내지는 HTTP 요청과 응답을 볼 수 있습니다.
간단한 정보만 보여주는 'General' 만 봐도 다양한 정보가 보입니다. 이 중에서 몇가지만 살펴보겠습니다.
지금은 요청 메소드와 응답 코드 등을 알아보고 파악하는 능력이 중요
- 'Request Method': 이전에 봤던 HTTP 요청 메소드 중 GET, 리소스를 가져온다는 뜻인 메소드를 사용하고 있습니다.
- 'Status Code' : 200 이라는 숫자 앞에 초록색 불이 들어왔습니다. 200 은 'OK', 성공했다는 뜻입니다. 여기에서는 GET 요청이 성공적이었다는 뜻이 됩니다.
- 'Request URL' : 누가 요청을 하고 있는지를 담고 있습니다.
- 'Remote Address' : 어느 리모트 서버에 요청을 하고 있는지 알려주고 있습니다. 현재는 157.245.183.96 의 443 포트에 요청을 보내고 있습니다.
- 'Referrer Policy' : 요청을 보내는 곳이 당사자인지, 타 웹사이트에서 연결된 건지 등 알려줍니다. 현재는 'no-referrer' 로 현 웹사이트에서 보내고 있습니다.
🧷 가져갈 개념 키워드
- API
- RESTful API
- API 토큰
- 개발자 계정
'Web' 카테고리의 다른 글
[Web 개념] RESTful API (0) | 2021.07.30 |
---|---|
[Web 개념] API (0) | 2021.07.30 |