👨💻 오늘 공부한 것
: HyperText Transfer Protocol의 약자로 Protocol, 통신 규약의 종류들 중 하나이다.
HTTP는 API, 즉 HTTP로 클라이언트가 서버에 요청할때와 서버가 클라이언트에게 제공할때 어떻게 제공하고, 어떻게 요청해야되는지를 알려주는 메뉴판이라고 생각하면 편하다. API는 Application Programming Interface의 약자로 대표적인 HTTP API중 메소드는..
GET(조회)
POST(추가)
PUT(갱신)
DELETE(삭제)
이다.
HTTP는 Protocol답게 통신 양식이 있는데, 그것을 HTTP Messages라고 한다. HTTP Messages의 구조는 다음과 같다.
startLine(응답일땐 statusLine)
HTTP Headers
emptyLine
body
또한 HTTP는 무상태성(stateless)라는 특징을 가지고 있는데, 이는 HTTP는 그저 통신규약, Protocol중 하나일 뿐이므로 변수에 데이터를 할당한다거나, 리액트의 state, props처럼 어떤 값을 가지고 있어 상태를 나타낸다거나 하지않고, 그냥 HTTP Messages를 보내면 끝이다. 그래서 뭐 해킹에 취약하다고 하는데, 이제 곧 서버 배울때 배운다고한다.. (설렌다 하하)
: URL은 URI에 포함되어 있다. URI는 URL보다 상위개념이다. 왜 그런지 살펴보자
예를들어
http://www.google.com:80/search?q=JavaScript
라는 URI를 분석해보자면..
www.google.com은 도메인이름이다. 각 컴퓨터는 IP Adress를 가지고 있다. IP는 Internet Protocol의 약자로 각자 컴퓨터마다 가지고 있는 고유번호라고 생각하면 편하다. 서버 또한 이러한 IP주소를 가지고 있는데, 위와 같이 www.google.com 처럼 도메인 이름을 적어도 되고, 구글서버의 IP주소를 적어도 구글서버에 다음과 같은 웹페이지를 요청할 수 있다. 참고로 구글 서버IP를 알아보려면 CLI에 "nslookup <도메인이름>"라는 명령어를 입력하면 해당 도메인의 서버의 IP주소를 알 수 있다. 이와 같이 도메인이름을 입력하면 해당 IP주소로 페이지를 요청하는 것을 담당하는 시스템서버가 있는 데 이를 DNS(Domain Name System)이라고 한다.
:80 은 Port다. Port란, 서버에 페이지를 요쳥할 수 있도록 도와주는 통로같은 것이다. Port는 여러개가 있는데.. 대표적으로 다음과 같다.
22 => SSH
80 => HTTP
443 => HTTPS
/search 는 url-path다. 약간 CLI에서 절대경로로 /User/유저이름/Desktop 라고 정의해주는 것과 비슷하다고 보면 편하다. 서버에 페이지를 요청할때 이와같이 어디 위치에서 요청을 한다고 정확히 지정을 해주고 요쳥을 해야한다.
? 는 매개변수 표시이다.
q=JavaScript는 query다. q라는 변수에 JavaScript를 넣는 것과 비슷하다? ==> query는 서버에 추가질문 하는 것과 같다.
SSR(Server Side Rendering)은 서버에서 클라이언트가 요청한 페이지를 렌더링하여 클라이언트에 제공하는 것을 얘기한다. 이는 SEO(Search Engin Optimazing)를 할 때 주로 사용한다.
CSR(Client Side Rendering)은 서버에서 자바스크립트파일, html, css 등등 클라이언트의 웹 브라우저에서 동적으로 페이지를 렌더링하기위해 필요한 파일들을 제공하고 그 파일들로 클라이언트에서 렌더링하는 방식을 얘기한다.
이 둘의 차이점은 어디서 렌더링을 하냐에 있다.
조금 더 부지런하게 움직여서 시간을 갈아넣도록하자.