Wanna be Brilliant Full-Stack Developer
SpringBoot Blog 만들기 - http1.1 요청방식 본문
Http1.1이 무엇인가?
우리가 기본적으로 통신을 하기 위해서는 어떤 두개의 대상에 이런 Byte Strieam이 연결이 되어야한다.
8bit가 왔다갔다 하면서 통신을 하게 된다. 하나의 문자가 움직인다
A라는 애가 B에게 데이터를 쓰고 싶으면 화살표가 데이터가 가는 방향으로 움직여지고
Write하겠다는 것이다!
그리고 Stram을 하나 더 달아서 반대로 해서 Read하겠다라고도 할 수 있다.
하나의 스트림은 롸이트하고 하나의 스트림은 리딩하는것이다.
이렇게 선을 달아서 내가 보내고 싶은 데이터를 스트림을 통해서 보내고 이 스트림을 통해서 받는다
이게 일반적인 통신이다.
우리가 HTTP 통신을 할때는 어떤 약속이 필요하다. 내가 일반적으로 그냥 글자를 쓰고 바꾸고 하는 통신이 아니라 어떤 약속된 통신을 해야하는데이 약속된 통신에는 HTTP 1.1기준으로 수많은 약속이 있다.그 약속들 중에 통신 방법 4가지만 알아보자! 나머지는 중요하지 않다.1. GET
2. POST
3. PUT
4.DELETE
HTTP 통신은 만약에 B가 서버라고 한다면! 서버는 데이터를 가지고 있는 애를 서버라고 하는데 갑이다!그러면 B 입장에서는 A가 누군지 하나도 궁금하지 않다.A 입장에서는 B가 가지고 있는 데이터를 가지고 싶어서 B한테 스트림을 연결하고 데이터를 요청하게 될것이다.그러면 A가 B한테 요청을 하게 되는데(Request) 여기에 대해서 B가 응답을 해줘야한다
지금 여기에 적혀있는 통신 방법 4가지는 요청의 방법 4가지이다!
A가 응답할리가 없다. 왜인가? 서버는 어떤 개인(홍길동)에게 데이터를 달라고 요청 할리가 없다.A가 B한테 어떤 데이터가 필요하니 그것좀 달래 요청을 하는것이고!
그러면 서버는 A한테 그 데이터를 응답해주는 구조가 HTTP구조이다.
그래서 요청은 항상 클라이언트가한다 그리고 서버라고 한다클라이언트는 항상 배고픈자, 서버는 음식을 들고 있는자!배고픈자가 음식 들고 있는 사람에게 음식좀 줘 요청을 하는것이고 음식을 들고 있는 사람은배고픈 사람에게 딱히 요청할 이유가 없다.
우리가 배우는건 요청의 방법 4가지인데! GET , POST ,PUT , DELETE인데!
GET은 무엇인가?
get은 데이터를 줘! 라고 하는것이다. 데이터베이스에 매핑을 시켜놓으면 데이터베이스에 어떤 데이터를 읽을때
어떻게 하는가? SELECT 하게 되면 데이터를 가져올 수 있게 된다.
GET은 데이터를 달라고 할때 쓰는것이다.
그래서 A가 B 한테 요청할때 GET요청을 하게 되면 B는 A가 데이터를 요청했다 생각하여 그 데이터를 응답하게 되는데
이것이 GET방식이다!
두번쨰로 POST는?
데이터를 줘가 아니라 데이터를 추가해줘라는 것이다!
한건의 데이터가 될 수 있고 10개의 데이터가 될 수 있다. 데이터를 추가해줘라는것은 내가 만약에 회원가입을 할때
내 정보를 적겠다. 웹브라우저에 , 웹브라우저에 내 정보를 적고 나서 네이버나, 다음이나, 이런 서버에 내 데이터를
통신을 통해서 요청의 방법을 통해 내 데이터( 내 아이디, 비밀번호, 주소, 내 별명, 내 성별, 내 이메일 ) 이런것들을
던져주겠다!
던져주고 B는 자기 데이터베이스 추가하게 되는데 POST방식은 데이터를 줘가 아니라 데이터를 추가해주기떄문에
이것을 데이터베이스 매핑하게되면 INSERT를 하게 되고 INSERT를 요청하게 되는것이다.
세번쨰는 PUT이다!
PUT은 데이터를 수정해줘라는것이다!
내가 회원가입을 했다. 내가 주소를 다 입력해서 POST방식으로 해서 요청을 해서 회원가입을 했다.
내가 주소를 잘못적으면? 수정이 필요하다. 수정이 필요할때는 POST방식으로 요청하지 않고 PUT방식으로 요청한다
이것은 서로 약속이 된 HTTP방법이다. 내가 PUT을 요청하면 너는 수정해 라는 약속이 기본적으로 HTTP통신에는
약속이 되어있다. 내가 PUT 요청을 했으니까 데이터를 수정해 라고 하면 서버는 이것에 맞춰서 UPDATE문을 실행해준다.
네번쨰 DELETE는?
데이터를 삭제하는것이다!
데이터를 삭제해줘라고 하면서 요청을 하게 되면 서버는 그에 맞춰서 DELETE라는 SQL문을 수행해서 데이터를 삭제해주는것이다. 여기서 중요한것은?
데이터를 줘라는것이 GET이면? HOW가 없다. 어떤 데이터를 줘라는 요청을 어떻게 할것인가?
데이터를 추가해줘라는 POST명령어에 HOW가 없다. 어떤 데이터를 추가해줄까?
데이터를 수정해줘 라는 PUT에 HOW가 없다. 어떤 데이터를 수정해줄까?
데이터를 삭제해줘 라는 DELETE에 HOW가 없다. 어떤 데이터를 삭제 해줄까?
그러면 A가 클라이언트고 서버가 있는데 이 서버한테 스트림을 연결하고 요청을 할것이다.
그것을 REQUEST라고 한다 ! 요청을 할떄 데이터를 줘 라고 GET방식으로 요청을 했다?
서버는 GET이 나왔으니까 먼가 SELECT라는 뜻이라는걸 인지는 하지만
무엇을 SELECT하는지는 모른다.
그래서 요청 뒤에 ?(물음표)를 해서 사과 데이터를 줘!
요청 뒤에 ?(물음표)를 하고 회원정보 데이터를 줘! 이렇게 요청을 해야한다!
요청을 할때에는 내가 데이터를 ! 던져줄 수있다 추가적인 정보를 서버한테
내가 데이터를 달라고 할때 HOW가 어떤 데이터를 줘!
데이터를 추가해줘라고 요청을 할떄 A가 서버한테 POST요청을 할건데 데이터를 추가해줘라고 했는데
도대체 어떤 데이터를 추가해줘야하는데 서버가 물어보면 애도 데이터를 뒤에 달아야한다!
내 데이터는 많이 있는데 ID = ssar이고 비밀번호는 1234이란 데이터를 HOW(어떤 데이터) 이다.
마찬 가지로 PUT, DELETE도 어떤 데이터를 수정하고, 삭제해줘야되라는걸 알아야한다
다음에 MIME타입에 대해서 알아보려고한다!
'Back-End > 블로그 만들기 With SpringBoot' 카테고리의 다른 글
SpringBoot blog 만들기 MIME 타입은? (0) | 2023.02.11 |
---|---|
Spring Boot Blog 만들기 Stateless란? (0) | 2023.02.11 |
SpringBoot Mysql 및 Github 연결! (0) | 2023.02.07 |
SpringBoot Blog 만들기 프로젝트 실행해보기 (0) | 2023.02.02 |
SpringBoot blog 만들기 의존성 설정 (0) | 2023.02.01 |