작업중: In progress 태그: Dev, 백엔드프로그래밍, 웹&모바일, 자바프로그래밍기초 학습일: 01/11/2023
개발 방법론
관점에 따라 다를 수 있다. (red box)
서버에 요청했을 때, 서버에서 상태와 값을 응답하는 것
- HTTP method
-
create
post → 요청할 때 마다 데이터가 추가된다.
-
read (retrieve)
get → 요청 처리 후 데이터 변경은 없다.
-
update
put → 요청 처리 후 추가되는 데이터는 없고 변경만 된다.
-
delete
delete → 요청 처리 후 데이터가 삭제된다.
-
- 기본 구현 코드
fetch('http://example.com/movies.json')
.then((response) => response.json())
.then((data) => console.log(data));
- post 메서드 구현 예제
// POST 메서드 구현 예제
async function postData(url = '', data = {}) {
// 옵션 기본 값은 *로 강조
const response = await fetch(url, {
method: 'POST', // *GET, POST, PUT, DELETE 등
mode: 'cors', // no-cors, *cors, same-origin
cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
credentials: 'same-origin', // include, *same-origin, omit
headers: {
'Content-Type': 'application/json',
// 'Content-Type': 'application/x-www-form-urlencoded',
},
redirect: 'follow', // manual, *follow, error
referrerPolicy: 'no-referrer', // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url
body: JSON.stringify(data), // body의 데이터 유형은 반드시 "Content-Type" 헤더와 일치해야 함
});
return response.json(); // JSON 응답을 네이티브 JavaScript 객체로 파싱
}
postData('https://example.com/answer', { answer: 42 }).then((data) => {
console.log(data); // JSON 데이터가 `data.json()` 호출에 의해 파싱됨
});
- post 메서드 구현 실습
fetch('http://localhost:8080/boards', {
method : 'POST',
headers: {
'Content-type': 'application/x-www-form-urlencoded'
},
body: `title=${title}content=${content}password=${password}`
}) // 계약서 개념 -> JSON 비동기 설명
.then((response) => {return response.json();})
//위 약속이 이행됐을 때, 응답 정보를 받을 json객체
//한 줄 이니 중괄호, return, ; 생략가능
.then((obj) => {console.log(obj)});
//위 프로미스(return값) 가 이행됐을 때, 실행 될 함수
};
- 디버깅 찾는 경로
console > network
preserve log / disable cache (항상 체크0
headers > request headers
payload
- AJAX와 CORS
@CrossOrigin(origins = "http://127.0.0.1:5500")
// 와일드카드(*) 또는 배열 형태로 여러개 추가 가능
@CrossOrigin(origins = {"http://127.0.0.1:5500", "http://localhost:5500"})
console > network
headers > request headers
view source > Origin
- postman
프론트엔드 개발과 무관하게 API 생성하여 테스트할 수 있는 프로그램
https://www.postman.com/downloads/
다운로드 > 업데이트
get new request : 게시글 REST API 테스트
HTTP 요청
📍 보안 강화? 까진x http security 가 보안 강화의 형태
Query String 방식으로 데이터 보내기
브라우저가 URL을 cache에 보관
→ 외부 노출
→ 보안에 취약
Message-body 방식으로 데이터 보내기
(content- length, type 필수)
브라우저가 cache에 보관하지 않는다.
→ 직접적이 외부 노출 방지
따라서, postman delete 는 body에서!
- 프로퍼티명 : get, set 제거 후 첫 문자를 소문자로 변경
- 필드만 있으면 setter, getter 획득 안됨
location.href
페이지 리다이렉트
split()
return 되는 값은 배열형태로!
isNaN()