티스토리 뷰
● 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
- 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
- 빅데이터 분석기사
- Advanced Stream
- SQL
- 자료구조
- spring
- git
- 코테
- OS
- 운영체제
- Phaser3
- MySQL
- node.js
- java
- nosql
- Spring Boot
- Java8
- API
- 프로세스
- db
- Stream
- 메모리
- MongoDB
- 빅데이터
- Phaser
- jpa
- 프로그래머스
- 코딩테스트
- DART
- SpringBoot
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |