반응형
오늘 배운거 요약
HTTP
HTTP
- HTTP 클라이언트와 서버가 데이터를 주고받을 때 사용하는 프로토콜,
HTTP로 통신을 주고받는 과정에서 HTTP가 클라이언트나 서버의 상태를 확인하지 않는 무상태성(stateless)이 특징이다. - HTTP 메시지 : 클라이언트와 서버가 HTTP를 이용해 주고받는 메시지,
클라이언트에서 서버에게 요청(request) 하고 서버가 클라이언트에게 응답(response) 한다.
요청이 없다면 응답도 없음
HTTP Method :
- GET : 조회
- POST : 추가
- PATCH, PUT : 수정
- DELETE : 삭제
API :
- 서버가 클라이언트에게 리소스를 잘 활용할 수 있도록 제공하는 인터페이스
URL 과 URI
http://www.google.com:80/search?q=JavaScript 를 브라우저의 검색창에 입력해보자.
URL : 주소를 나타낸다
- scheme : 통신방식인 프로토콜을 결정한다. 일반적으로 http(s)사용
- hosts : 웹서버의 이름이나 도메인, IP를 사용하며 주소를 나타낸다.
- url-path : 위치한 경로와 파일명을 나타낸다.
URI : 식별, URL를 포함하고 있으며 그 외에 bookmark, query를 갖고있다.
- query : 웹서버에 보내는 추가적인 질문
IP 와 Port
- IP : 네트워크에 연결된 특정 PC의 주소를 나타나는 체계
- Port : IP주소가 가리키는 PC에 진입하는 통로, 사용중인 PORT는 중복사용 불가
065535까지 사용가능하며 01024까지는 이미 정해져 있다.
22: SSH, 80 : HTTP, 443: HTTPS
DNS
- Domain name : IP 주소가 번지수(혹은 도로명주소)라면, Domain name은 건물이름(예: 현대아파트, 롯데타워 등)이다
위 그림에서 IP 주소는 125.209.222.141 이고 도메인이름은 naver.com 이다.
주소창에 125.209.222.141을 입력하면 naver.com으로 이동할 수 있다.
- DNS : Domain Name System
도메인 <---> IP 를 서로 변환시켜주는 DB 시스템
www.naver.com을 입력하면 DNS에서 125.209.222.141를 찾고 그 IP 주소에 해당하는 웹서버로 요청을 전달하여 클라이언트와 서버가 통신할 수 있게 한다.
AJAX : Asynchronous JavaScript And XML
- 웹페이지를 전체로딩하지 않고도 웹페이지의 일부분만을 갱신할 수 있음. 백그라운드 영역에서 서버와 통신하며 그 결과를 web page의 일부분에만 표시할 수 있음.
HTML,CSS,DOM,JSON,XML,JS,XMLHTTPRequest객체 가 AJAX의 기반기술이다.
- 한계 :
- 서버 푸시 서비스를 만들 수 없음( 앱이 보내는 실시간 push알람 같은것들)
- 바이너리 데이터를 송수신 할 수 없다.
- AJAX 가 포함되지 않은 서버로 AJAX 요청을 보낼 수 없다.
- 클라이언트 PC로 AJAX 요청을 보낼 수 없다.
SSR과 CSR
- SSR : 서버에서 페이지를 렌더링하여 브라우저로 전해준다. SEO가 우선인경우, 사용자와 페이지의 상호작용이 적은경우, 첫화명의 렌더링이 빠르게 필요한 경우에 적합하다.
- CSR : 서버에서 골격홈페이지, JS를 보내주면 브라우저에서 렌더링한다. SEO가 우선순위가 아닌경우, Wep App 제작하는 경우에 적합하다.
풍부한 상호작용이 있는 경우 빠른 라우팅을 적용할 수 있다.
CORS :
유저를 보호해주는 정책이다.
- Preflighted Request : 먼저 물어보고 요청한다. 이때 먼저 물어보는 메시지를 뜻함.
브라우저가 서버에 요청을 한번에 보내지 않고 예비요청과 본 요청을 보내는 시나리오가 있다. 이떄의 예비요청을 Preflighted Request라고 한다. Preflighted Request에는 OPTIONS 메소드가 사용된다. 본 요청을 보내기 전 브라우저 스스로 Preflighted Request 를 서버에 보내 본 요청이 안전한 요청인지 확인함. - Simple Request : 안물어보고 그냥 달라고 한다. 받은 후에 검사한다.
바로 서버에 본 요청을 넣고 응답이 오면 이 응답을 검사함. prefligted request와는 예비요청 유무가 차이이다.
단 특정조건에서 예비요청을 생략할 수 있다.
1. 요청의 메소드는 GET, HEAD, POST 중 하나여야 한다.
2. Accept, Accept-Language, Content-Language, Content-Type, DPR, Downlink, Save-Data,
Viewport-Width, Width를 제외한 헤더를 사용하면 안된다.
3. 만약 Content-Type를 사용하는 경우에는 application/x-www-form-urlencoded,
multipart/form-data, text/plain만 허용된다.
- Credential Request : 인증된 요청을 사용하는 방법. CORS의 기본적인 방법이라기 보다는 다른 출처간 통신에서 좀 더 보안을 강화하고 싶을 때 사용한다.
반응형
'TIL > 코드스테이츠 TIL' 카테고리의 다른 글
코드스테이츠 소프트웨어엔지지어링 부트캠프 +48일, 복습 (0) | 2021.09.05 |
---|---|
코드스테이츠 소프트웨어엔지지어링 부트캠프 +47일, (0) | 2021.09.04 |
코드스테이츠 소프트웨어엔지지어링 부트캠프 +45일, (0) | 2021.09.02 |
코드스테이츠 소프트웨어엔지지어링 부트캠프 +44일, 비동기 동기 (0) | 2021.09.01 |
코드스테이츠 소프트웨어엔지지어링 부트캠프 +43일, 시간복잡도 공부 (0) | 2021.08.30 |