티스토리 뷰

Backend/Spring

#4 HTTP, API, URL

RadderNepa 2023. 7. 29. 17:09

● HTTP / HTTP Request

- Web을 통해 데이터를 주고 받기 위해서는 통신 방식을 규정하는 일종의 표준(규격)이 있어야하는데 이 표준을 바로 HTTP(HyperText Transfer Protocol)라고 한다.    cf) Protocol = 표준, 약속

ex1)

[HTTP 요청]
GET /portion?color=red&count=2
Host: spring.com:3000
cf) spring.com = Domain Name / 3000 = port

1. GET(= HTTP Method) : HTTP request를 받는 컴퓨터에게 요청하는 행위(데이터를 내놓아라)

2. Host: spring.com:3000 : HTTP request를 받는 컴퓨터(Domain Name)와 프로그램 정보(3000)

3. /portion(= path) : HTTP request를 받는 컴퓨터에게 원하는 자원

4. ?, & : 구분기호

5. color=red, count=2 : 자원의 세부 조건

cf) (?color=red&count=2)를 쿼리(Query)라고 한다.

 

ex2)

[HTTP 요청]
POST /oak/leather
Host: spring.com:3000

1. POST(= HTTP Method) : HTTP request를 받는 컴퓨터에게 요청하는 행위(데이터를 저장해라)

2. Host: spring.com:3000 : HTTP request를 받는 컴퓨터(Domain Name)와 프로그램 정보(3000)

3. /oak/leather(= path) : HTTP request를 받는 컴퓨터에게 원하는 자원

4. POST method 방식에서는 데이터를 HTTP body에 담아서 보낸다.


 HTTP Method

- Query와 body는 서버에 데이터를 보내는 대표적인 2가지 방법이다.

- 서버에 보낼 데이터를 GET 방식에서는 path 혹은 Query에 담고 POST 방식에서는 body에 담아서 보낸다.

- GET, POST를 포함해 HTTP Method는 총 4가지가 있다.

Method 성격 데이터 담는 방식
GET 데이터 조회 Query
POST 데이터 저장 body
PUT 데이터 수정 body
DELETE 데이터 삭제 Query

cf)

- GET이라고 해서 무조건 Query만 사용해야하고 POST라고 해서 무조건 body만 사용해야하는건 아니다.

- POST method에서 Query를 사용해도 되고 DELETE method에서 body를 사용해도 CRUD 구현에는 문제가 없다.

- 다만 정해진 약속(프로토콜)이 있고 REST API를 생각한다면 그것을 따르는 것이 좋다.


● HTTP Response

- Request(요청)가 있으면 Response(응답)가 있어야한다.

[HTTP 저장 요청]
POST /oak/leather
Host: spring.com:3000
============================================================
[HTTP 응답]
- 저장을 성공했다면 서버는 200 코드를 client에게 response 한다.
- 저장을 실패했다면 404, 500 등 원인에 해당하는 코드를 client에게 보낸다.

- 200 : OK(성공)

- 300 : Moved Permanently(다른 곳으로 옮겨가라) / Redirection(리다이렉션)과 연관이 있는 코드

- 404 : Page NotFound

- 500: Internal Server Error

https://developer.mozilla.org/ko/docs/Web/HTTP/Status

 

HTTP 상태 코드 - HTTP | MDN

HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다: 정보를 제공하는 응답, 성공적인 응답, 리다이렉트, 클라이언트 에러, 그리고

developer.mozilla.org


- Request와 Response의 구조는 아래와 같다.

1. Request 구조

인프런 - 자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지!(최태현)

 

2. Response 구조

- Response 시 body에 추가 정보를 담을 수도 있다.

인프런 - 자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지!(최태현)


API, URL

1. API(Application Programming Inteface)

API : 정해진 약속을 기반으로 특정 기능을 수행하는 것

- client와 server는 HTTP 프로토콜을 기반으로 기능을 동작시키는데 이때 정해진 규칙을 API라고 하는 것이다.

 

2. URL(Uniform Resource Locator)

URL    ex) http://spring.com:3000/portion?color=red&count=2
1. http : 사용중인 프로토콜 (HTTP)
2. :// : 구분기호
3. spring.com:3000 : 도메인이름:포트   cf) 도메인 이름은 IP 주소로 대체 가능
4. /portion : 자원의 경로(path)
5. ? : 구분기호
6. color=red&count=2 : Query(추가정보)

'Backend > Spring' 카테고리의 다른 글

#6 POST API  (0) 2023.07.31
#5 GET API with DTO  (0) 2023.07.30
#3 @SpringBootApplication / 네트워크  (0) 2023.07.27
#2 API 만들기1 - Spring Project 생성  (0) 2023.07.25
#1 빌드, 실행, 테스트 코드, ant, maven, gradle 알아보기  (0) 2023.07.24
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함