1. 네트워크
: 컴퓨터 외 세상의 모든 사물이 네트워크로 연결되어 있음
2. Client와 Server
: 데이터를 주고받는 관계
•
Server : 제공해주는 서비스가 있는 곳 (특정한 데이터가 모여있는 곳)
•
Client : 웹브라우저와 같이 Server에 접근해서 원하는 데이터를 받기 위해 사용하는 것
→ Chrome, Safari 등의 웹브라우저, App, cmd 등
→ 디바이스도 Client라고 볼 수 있음,,(디바이스랑 소프트웨어 묶어서)
3. HTTP
: HTTP를 통해 Client와 Server 통신
•
Client가 Server에 요청 → Server가 요청에 맞는 기능 수행 → Server가 Client에 응답 → 연결 해제
•
로그인 상태/ 장바구니 등 : 연결을 유지해야함 → 쿠키/세션 이용
◦
쿠키
▪
데이터가 PC에 머무는 경우
▪
한번 접속하면 PC에서 쿠키값 자동 생성 → 쿠기값을 PC와 Server에 두고 통신할 때 비교하며 연결 유지
◦
세션
▪
데이터가 Server에 머무는 경우
▪
Server에서 세션값 생성 → 값을 비교하며 연결 유지
▪
보안상에서 우위
4. HTTP 처리 방식
•
Client - Server : Request & Response 관계!(HTTP 방식)
◦
POST : 새로운 글(데이터)을 입력할 때
◦
GET : 데이터가 필요해서 가져올 때
◦
PUT : 기존 서버의 데이터를 수정할 때
◦
DELETE : 기존 데이터를 삭제할 때
⇒ POST, GET : HTML의 form태그 지원
•
Server - DB : Request & Response 관계!
◦
create : 새로운 글을 데이터베이스에 넣을 때
◦
read : 데이터베이스를 읽을 때
◦
update : 데이터베이스의 데이터를 수정
◦
delete : 데이터베이스의 데이터 삭제
5. POST와 GET
•
GET
◦
URL에 데이터가 노출됨
◦
데이터 길이에 제한 있음
◦
상대적으로 보안에 취약
•
POST
◦
요청 메시지에 데이터를 담음<body>
◦
상대적으로 보안에 강함
◦
Django에서 주로 사용
6. URL
•
URL 기본 형태 : Server 진입 (프로토콜, 도메인) → Server 안의 경로 → 요청문 (쿼리)
7. REST와 Django URL 맵핑
•
규칙을 정해두고 그에 따라 실행될 함수를 미리 정해둠
•
str 부분만 변경
8. 서버 구성
•
Client → 웹서버 → 애플리케이션 서버 → DB
•
웹 서버 ⇒ 정적!
◦
주로 정적인 데이터 요청 처리
◦
동적인 데이터 요청 시 애플리케이션 서버에 전달
•
애플리케이션 서버 ⇒ 동적!
◦
주로 동적인 데이터 요청 처리
◦
Database 연동