1. POSTMAN 설치
https://www.postman.com/downloads/
2. HTTP1.1
- get
- post
- delete
- put
그런데 여기서 요청을 할때, 어떤 데이터를 처리해줘야하는지 서버에서 어떻게 알까?
get방식일때 쓰는게 쿼리스트링, 어떤걸 달라고 붙여서 보내기만 하면 되니까
근데 요청하는 데이터가 저렇게 여러가지라면?
이때 필요한게 바로 MIME TYPE
3. stateless 와 stateful
stateful => 연결 지속 , 채팅 같은 서비스, 그리고 세션을 생성해서 인증된 유저와 계속 데이터 주고받기 가능.
그러나 서버에 부하가 매우 크다. 그래서 http방식에서 사용하지 않음
stateless => 요청시마다 스트림을 연결해서 data를 주고 받는 방식 ,http방식.
=> 한번 연결 후 끊기는데 어떻게 유저 인증을???
=> 이럴때 쓰이는게 스프링 시큐리티.
4. MIME 타입
유저가 post요청시, 데이터를 어디에 담아가나?
헤더와 바디에 담아감.
http통신방법
- 서킷 스위칭 : 물리적으로 선이 계속 연결되어야해서 비용 많이 발생, 하지만 속도 매우빠름
- 패킷 스위칭: 데이터를 쪼개서(쪼갠 하나의 조각 : 패킷) 각각 보낸 데이터가 섞여서 전송 된 후 받는쪽에서 조립
패킷에 순서와, 누가보냈는지 등의 정보가 있어야 조립할 수 있으므로 그 정보를 header에, 실제 데이터를 body에 담아 보내는거다.
근데 이 header에 내가 보낸 데이터의 타입을 알려주는 방법이 있음, 마구잡이로 적는게 아니다
이 타입을 표기하는 방법이 바로 마임타입(mime type)
https://developer.mozilla.org/ko/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
이걸 다 외울 필요는 없고 필요할때마다
5. Controller 생성 및 실습
- HttpControllerTest.java 생성
- Get 메서드
- Post 메서드
- Put 메서드
- Delete 메서드
package com.cos.blog.test;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
//사용자가 요청 => 응답(Html파일)
//@Controller
//사용자가 요청 => 응답(Data)
@RestController
public class HttpControllerTest {
@GetMapping("/http/get")
public String getTest(){
return "get요청";
}
@PostMapping("/http/post")
public String postTest(){
return "postTest";
}
@PutMapping("/http/put")
public String putTest(){
return "putTest";
}
@DeleteMapping("/http/delete")
public String deleteTest(){
return "deleteTest";
}
}
f5누르면 get요청에서 뭐를 보냈는지 정보가 뜬다.
근데 post, put, delete는 불가능(405 오류) => 지금 데이터없으니까!
=> 그래서 postman이용해서 테스트
private로 변수 선언하는 이유?
1.get요청 테스트
2.post요청
1. form
x-www-form 어쩌구 : <form> 태그로 정보 보낸거랑 똑같!
2.
raw데이터 : 가장 기본 데이터 (text/plain)
text를 보낼때, get 처럼 그냥 보내면 404,
raw에서 text타입을 고르고 전송
3.json
key는 항상 string. 쌍따옴표 필수
여기서 json타입 데이터를 적어놓고 text를 고르면 messageConveter가오브젝트에 데이터 못넣음(단순 문자열이므로)
'편안한코딩생활 > 기타등등' 카테고리의 다른 글
xss, csrf공격이란? (0) | 2023.08.02 |
---|---|
@Builder 패턴이 뭔데? (0) | 2023.07.25 |
깃 레포지토리 하나에 여러 프로젝트 올리기 코드 백업~ (0) | 2023.07.14 |