[Network] HTTP, DNS, IP

­Valentine·2022년 1월 6일
0

CS

목록 보기
15/23

CS공부 12일차. NASA에서 올린 지구 사진2를 넣었습니다.

HTTP

  • HTTP : HyperText Transfer Protocol으로 stateless하고 connectionless한 서버와 클라이언트간의 통신규약입니다.

  • HTTPS : HTTP에 socket과 TCP사이에 SSL이나 TSL을 넣은 보안을 강화한 통신규약입니다. 메시지를 암호화하여 보내고 공개키를 공인된 제3자의 기관에서 관리합니다.

  • HTTP header 구조 : general, entity, request, response 4가지로 나누어지며 general에서는 생성 날짜 등이 들어가고 entity에는 content type등이 들어갑니다. request header는 요청 메시지일때만 붙는데 cookie 정보와 host 정보 등이 들어있습니다. response header는 응답 메시지일때만 붙는데 Set-Cookie나 host 정보 등이 들어있습니다.

  • keep-alive header : 원래 http는 한번 응답하면 연결을 끊지만 연결을 살아있도록 하는 option입니다.

  • HTTP GET과 POST의 차이 : get은 리소스를 검색하여 받기 위한 메소드이고 post는 리소스를 수정하거나 생성하기 위한 메소드입니다. get은 cache가 생성될 수 있기 때문에 post를 get으로 보내면 잘못된 응답이 돌아올 수 있습니다.

  • REST API : REST API는 REST 원칙을 지킨 API 를 말합니다. REST는 REperesentional State Transfer의 약자로 Cache, Uniform Interface, Stateless, Client-Server, layered System의 원칙을 지키면 RESTful하다고 부릅니다. REST는 웹을 변형시키지 않고 HTTP를 발전시키기 위해 정의되었습니다. REST를 어기는 API들은 대부분 Uniform Interface 원칙을 어기는데 나머지는 HTTP를 지키면 대부분 지켜지기 때문입니다. context-type같은 곳에 사용한 변수에 대해 모두 정의한 문서의 링크를 첨부하거나 IANA에 문서를 올리는 방식으로 해결할 수 있습니다. 또한 이동은 하이퍼링크를 통해 이루어져야해서 json에 하이퍼링크를 첨가하는 방식으로 해결할 수 있습니다.

  • CORS : Cross-Origin Resource Sharing으로 다른 URL에서 온 요청을 받아들일지 말지 결정하는 정책입니다. CORS 정책에 client의 URL을 허용해주어야 server에서 받아들일 수 있습니다.

  • 쿠키와 세션 : 쿠키와 세션은 모두 stateless한 HTTP의 특성을 보완하기 위해 나왔습니다. 차이점은 쿠키는 클라이언트에만 저장되고 세션은 서버에 저장되는 점입니다. 세션은 저장된 세션의 세션아이디를 set-cookie를 통해 클라이언트에도 쿠키로 저장해둡니다.

DNS

  • DNS : Domain Name System의 약자로 ip와 도메인이 매칭되어 있어 클라이언트가 질의하면 ip주소를 답변해줍니다. 계층구조로 이루어져있어 예를 들어 www.google.com을 찾는다고 하면 루트 DNS에서 .com TLD의 위치를 알려주고 .com DNS에서 google.com의 주소를 알려주는 방식입니다. TLD는 Top-Level Domain 으로 .com이나 .kr같은 최상위 도메인을 의미합니다.

  • DNS Round Robin : 구글 페이지가 여러 서버로 분산되어 있으며 이것이 DNS에 등록되어 있으면 Round Robin 방식으로 랜덤하게 로드밸런싱하는 기법입니다.

IP

  • DHCP : Dynamic Host Configuration Protocol의 약자로 client에게 자동으로 ip주소, dns 주소, gateway 주소를 할당해 주는 것을 말합니다.

  • Long Polling vs Streaming : Long Polling은 요청에 대해 서버가 응답을 하면 다음 응답을 기다리는 요청을 다시 보내는 것이고 Streaming은 connection을 한 번만 하고 연결을 끊지 않는 것입니다.

  • Socket.io vs WebSocket : 둘다 제약이 적은 양방향 통신을 위해서 고안된 socket 모듈의 일종입니다. websocket은 양방향 통신을 위한 프로토콜이고 socket.io는 모듈이지만 ws라는 websocket을 규정한 모듈도 있습니다.

profile
천체관측이 취미

0개의 댓글