DRF 원격공부 시작함. 전에 공부했던 내용들이라 강의듣는데에는 문제가 없어서 다행이다.
웹브라우저 흐름
1. DNS조회
2. HTTP 요청 메세지 작성
3. Socket 라이브러리를 통해서 전달
4. TCP/IP 작성되고 이 안에 HTTP메세지가 포함
Domain Name System : 핸드폰 주소록 이름 같은 느낌 - 전화번호는 IP주소
IP(xxx.xxx.xxx.xxx)주소 외우기 힘드니까 DNS(www.naver.com / www.google.com 같은거) 으로 검색
IP는? Internet Protocol
출발지 IP와 목적지 IP를 작성 / 지정한 IP주소로 작성
편지봉투? 느낌
TCP는?
IP를 TCP로 보완 / 출발지 Port와 목적지 Port 정보 / 데이터 전달을 보증 / 연결이 됐는지 확인 -> TCP 3 way Handshake 라고 연결인증방식 있음
<-> UDP도 있음 얘는 거의 안쓰임. TCP기능들이 없어서 보안이 안됨. IP+Port 정도
그럼 Port는 뭘까
같은 IP내에서 프로세스 구분을 해줌. 0~65535 까지 있는데 0~1023은 널리 쓰이는 포트임. ex) http는 80번 https 443번
자 이제 HTTP는? HyperText Transfer Protocol
Request Message와 Response Message는 다르게 생김
request message = request line(ex Get / http 1.0) - header - a blank line - body(optional)s
response message = status line(ex http 1.0 / 200 OK ) - header - a blank line - body(optional)
Restful한 API는?
리소스(회원)와 행위(메소드)를 분리하기.
쿼리 파라미터 = 주로 검색, 정렬 필터 / GET
메시지 바디 = 회원가입, 상품주문, 리소스 등록&변경 / POST PUT PATCH
GET = 조회
POST = 등록 / 메시지 바디에 데이터를 서버에 전달 / DB가 바뀌거나 뭐 그럴 때?
두개 비슷
PUT = 대체, 생성 / 파일 붙여넣기 같은 느낌 / 없으면 만들고 있으면 덮음 / 회원정보에서 생일만 바꾸고 싶은데, 나머지 회원 정보도 다 보내고 싶을때(의미적으로)
PATCH = 부분 변경 / 회원정보에서 생일만 바꾸고 싶은데, 나머지 회원 정보는 안보내고 생일만 보낼 때(의미적으로)
HEAD
DELETE
등등
HTTP Message
1xx = 잘 사용 안함
2xx = 요청 정상 처리 / 보통 200 OK 많이 씀
3xx = 추가 행동 필요 / 보통 redirect
4xx = 클라이언트 에러
400 : 프론트에서 뭔가 누락됐을 때
401 : 로그인 안됐음
403 : 권한이 없음
404 : 리소스가 없다. url을 틀렸을 때
5xx = 서버 에러 / 복구 후 재시도시 성공 가능
500 : 서버 내부 문제
503 : 서버가 일시 과부하
set-cookie : 리스폰스시 서버에서 클라이언트로 쿠키 전달
cookie : 클라이언트가 서버에서 받은 쿠키 저장 / 요청 시 서버로 전달
모르면 구글링하면 됨
http status < 같이 구글링하면 다 나옴