Javascript를 배우고 있습니다. 매일 배운 것을 이해한만큼 정리해봅니다.
1. Client : 서비스를 사용하는 사용자 혹은 사용자의 단말기
the typical web user's internet-connected device and web-accessing software available on those devices (usually a web browser like Firefox or Chrome).
2. Server: computers that store webpages, sites, or apps. 클라이언트에서 웹 페이지에 접근하려고 요청하면(request), 서버에서는 요청 받은 웹 페이지를 클라이언트 쪽으로 다운로드 해서 보여 준다(response).
- 인터넷 연결: 사용자가 웹에서 데이터를 보내고 받을 수 있게 해준다.
- TCP/IP: Transmission Control Protocol (전송 제어 규약)과 Internet Protocol (인터넷 규약) 은 데이터가 어떻게 웹을 건너 여행해야 하는지 정의하는 통신 규약
→ "어떻게 서로 의사소통 할 것인지 규칙"
- DNS: Domain Name System Servers (도메인 이름 시스템 서버) 는 웹사이트를 위한 주소록
→ 언어 형식으로 전달된 url을 ip로 구성된 진짜 서버 주소로 변환시킴
Dynamic web page: 서버에서 응답을 받을 때마다 페이지를 리로딩하지 않고, 브라우저 내 비동기적 요청/응답 처리를 통해서 페이지 전체 리로딩 없이 필요한 부분만 업데이트 하는 웹페이지가 등장 → web app
Asynchronous Javascript and XML
- 개념 정의: 비동기적으로 자바스크립트를 이용해 서버에 요청을 할 수 있는 기술
- 전체 리로딩 대신 비동기적으로 필요한 부분만 업데이트 처리 → javascript와 dom 을 이용
- 이전에는 서버와 통신을 통해 XMLHttpRequest를 사용(jquery) → 이제는 보다 표준 api를 마련하기 위해 fetch API라는 것이 만들어짐
XMLHttpRequest, jQuery ajax, fetch 등에서 ajax를 메소드로 제공
fetch API: 서버의 리소스를 가져온다. XMLHttpRequest와 비슷하지만 가독성 면에서 더 강한 코드
fetch API 형태: promise 객체를 받음
fetch(‘http://서버주소’)
.then(function(resp) {
// 응답 형식에 따라 resp.text(), resp.html(), resp.json 등이 될 수 있음
return resp.json();
.then(function(json) {
// api의 정보 set을 이용해서 하고 싶은 작업 삽입
});
POST 시 fetch API 형태
let newPost = { "userId": 1, "title": "새 글을 써봤습니다", "body": "안녕하세요?"}
fetch('http://서버주소/posts', {
method: 'POST',
body: JSON.stringify(newPost),
headers: {
"Content-Type": "application/json"
}
}).then(function(resp) {
return resp.json();
}).then(function(json) {
console.log(json); // { id: 123 }
});