- 네트워크
컴퓨터 외 세상의 모든 사물이 네트워크로 연결되어 있다.
- 클라이언트와 서버
클라이언트
- 랩탑, pc, 테블릿, 휴대폰 등의 기본적으로 설치 되어있는 브라우저
- 디바이스와 소프트웨어를 아울러 말하곤 함.
ex) chrome, edge, safari 등 -> 특정한 사이트(ex. 네이버)로 들어가 그들이 제공해주는 서비스 (서버)에 접근 할 수 있게 해주는 것
- 휴대폰 앱도 클라이언트가 될 수 있음.
- 서버에 있는 데이터를 컨트롤 할 수 있는 것들.
서버
- 클라이언트가 어떤 정보를 보고자 할 때 접속하는 특정한 데이터가 모여 있는 곳
-> 클라이언트와 서버의 관계
- 클라이언트가 서버쪽으로 요구를 먼저 요청함.
- 서버가 클라이언트가 요청한 것에 대해 응답해줌.
**클라이언트-서버 가장 대표적 통신 : HTTP
- HTTP
- 클라이언트와 서버가 있을 때 클라이언트가 서버한테 데이터 요청
- 서버는 그에 합당한 데이터 가공해서 보여줌
- 서버가 클라이언트에 응답함
- ** 응답후에는 사용자와의 관계를 끊어버림.
연결 유지 위해서는 쿠키와 세션 이용함
(데이터가 pc에 머물면 쿠키, 데이터가 서버에 머물면 세션)
-
쿠키방식 ; 처음 접속 시 특별한 값(쿠키 값) pc에서 생성, 서버와 pc에 나두고 접속시 비교해가면서 연결을 유지하는 방식
-
세션방식: 서버에서 세션 값 생성, 비교해서 연결을 유지하는 방식
HTTP 처리방식
client -> server -> DB
post(생성) create
get(필요할 때) read
put(수정) update
delete(삭제) delete
POST와 GET
- GET :
- 상대적으로 보완에 취약함
- 내가 요청한 데이터가 url에 그대로 노출됨
- 데이터 길이에 제한이 있음
- POST :
- 요청 메시지에 데이터를 담음
- 상대적으로 보안에 강함
- django 에서 사용
URL
-
URL 기본 형태
프로토콜 / 도메인(호스트) / 경로 / 쿼리 (요청구문)
-
REST URL 형태
프로토콜 / 도메인(호스트) / URL 맵핑 (데이터) 스트링
-
URL 맵핑
-> 규칙을 정해놓고 실행될 함수를 미리 정해 두는 것
서버구성
client -> 서버 -> DB
# 서버
- 웹서버) 주로 정적인 데이터 요청 처리
동적인 데이터 요청 시 애플리케이션 서버에 전달
- 에플리케이션 서버) 주로 동적인 데이터 요청 처리