[웹 개발을 하기 전에 알아두면 좋은 개념]
1. 웹이 동작하는 방식
ㅡ "모든 건 request와 response로 이루어진다"
ex) 브런치에 가입 신청 절차를 신청하면(request) 블로그가 생긴다 (response)
서버가 빈약하면 수강신청 사이트처럼 response를 잘 못하게 되는 것
1-1. 웹이 동작하는 방식 (심화)
ㅡ 통신을 함에 있어서는 '약속'(protocol;통신규약)이 필요함
웹에서 가장 많이 쓰이는 프로토콜은 바로 http
ㅡ HTTP Request Methods
(서버 입장에서는 어떤 요청인 건지 알아야 함.
ex- 브런치란 어떤 사이트인지 정보를 원하는 건지, 로그인을 원하는 건지...)
Get : 서버에 존재하는 Resource를 요청 ex) 정보
Post : 서버에 새로운 Resource를 생성 ex) 회원가입 등의 등록 // 우선 이것만 알아둬도 ok
Put : 서버에 존재하는 Resource를 변경
Delete : 서버에 존재하는 Resource를 삭제
ㅡ URL : 서버에 자원을 요청하기 위한 주소. (IP보다 식별하기 쉬움)
ex) https://www.abc.com:8000/user/info?id=juwon&pw=1234
http: 프로토콜
//www.abc.com : host
8000 : port
/user/info : path
id=juwon, pw=1234 : query
ㅡ HTTP Status Code
: 이 개념의 배경 - 만약 세상에 브런치가 존재하지 않는다면, 서버는 브런치 정보를 못줄 것
So, 사용자에게 잘못됐다고 알려주는 코드가 존재하는 것
2XX: Success
200 : 요청 성공
204 : 성공했으나, 응답에 데이터 없음
3XX: Redirect
4XX : Client error
400 : 잘못된 요청 (bad request)
401 : 권한 없음 (Unauthorized)
404 : 실패 (Not found)
5XX : Server Error
501 : 서버가 수행할 수 없는 요청ㅠㅠ
503 : 서버가 뻗음 @_@
2. 웹의 구성 (상대적 개념)
client : 서비스를 요청하는 프로그램
server : 클라이언트의 요청에 대한 응답을 주는 프로그램
3. 웹의 구성에 따른 개발 포지션
Frontend : HTML, CSS javascript (유저가 보는 화면을 만드는 사람)
Backend : pyrhon django (유저의 요청에 따라 응답을 내려주는 사람. ex) 이 정보는 주면 안되겠다~!)
둘 다 할 줄 알고 "난 이걸 더 잘해"라는 접근이 좋음