[CS] Web general

동화·2023년 3월 21일
0

CS

목록 보기
1/2
post-thumbnail

Web General

웹 서비스 프로토콜

웹 프로토콜이란?

웹 프로토콜은 웹에서 쓰이는 통신규약입니다. 통신규약이라는 것은 쉽게 설명하면, 통신을 할때 내가 이렇게 할게 너는 이렇게 해줘 라고 약속하는 것입니다.


HTTP

HTTP는 하이퍼 텍스트 전송 프로토콜. 서로 다른 시스템들 사이에서 통신(데이터)을 주고받게 해주는 가장 기초적인 프로토콜입니다. 우리가 웹 서핑을 할 때 서버에서 브라우저로 데이터를 전송해 주는 용도로 가장 많이 사용됩니다.
HTTP는 TCP 의 상위 프로토콜 입니다. 메시지 전체를 확인했다면, 그 메시지를 해석해야합니다. HTTP에는 Request methods, data type 등 원하는 메시지를 전달하기 위한 여러 규칙들이 있습니다.

Http 통신이란?

웹 프로토콜중 하나로 HTTP가 가장 많이 쓰이는데 Hyper text Transfer Protocol의 약자입니다. 쉽게 말하면, 인터넷에서 데이터를 주고 받을 수 있는 통신규약 정도로 보시면됩니다. 요청과 응답으로 이루어져있어 어떤 데이터 주세요 하고 요청하면, 이 데이터 줄게요 라고 응답합니다.

Http 1.1과 2.0의 차이는?

가장 큰 차이는 속도입니다. 2.0같은 경우는 헤더를 압축해서 보내기도하고, 한 번의 연결로 동시에 여러 메시지를 주고 받을 수도 입니다.

HTTPS

HTTPS는 하이퍼 텍스트 전송 프로토콜 보안(Hypertext Transfer Protocol Secure) 입니다.
일반 HTTP 프로토콜의 문제점은 서버에서부터 브라우저로 전송되는 정보가 암호화되지 않는다(해킹가능성)는 것이었는데요. HTTP 의 보안적 단점을 보완하는 것이 HTTPS 입니다.

http와 https 통신 방식의 차이?

결정적 차이는 보안입니다.
1. http방식은 네트워크상에서 정보를 누군가가 마음대로 열람, 수정이 가능한 반면 https는 누가 볼 수 없도록 막습니다.
2. http방식이 https방식보다 빠릅니다.
3. http방식은 민감한 정보를 다룰 때 항상 변조, 해킹 가능성을 생각해야 합니다. https는 설치 및 인증서를 유지하는데 추가적인 비용이 발생합니다. 따라서, 민감한 정보가 있는 페이지의 경우 https 그럴필요가없으면 http로 만들면 됩니다.

두 프로토콜 사이에 가장 커다란 차이점이 보안을 담당하는 SSL 인증서입니다.
SSL 인증서는 사용자가 사이트에 제공하는 정보를 암호화하는데, 쉽게 말해서 데이터를 암호로 바꾼다고 생각하면 쉽습니다. 이렇게 전송된 데이터는 중간에서 누군가 훔쳐 낸다고 하더라도 데이터가 암호화되어있기 때문에 해독할 수 없습니다. 그 외에도 HTTPS는 TLS(전송 계층 보안) 프로토콜을 통해서도 보안을 유지합니다.


IP / MAC / ARP

IP

컴퓨터의 IP주소는 말그대로 주소입니다.
이 프로토콜에서는 메시지가 목표로 하는 컴퓨테 잘 도착하도록 해주는 역할을 합니다. 인터넷과 같은 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해 사용하는 특수한 번호로서, 네트워크에 연결된 장치가 공유기/라우터이든 일반 컴퓨터이든, 모든 장치들은 특수한 번호를 가지고 있어야 하며. 이 번호를 이용하여 발신자를 대신하여 메시지가 전송되고 수신자를 향하여 예정된 목적지로 전달되게 됩니다. 이때 사용되는 특수한 번호를 IP라고 합니다.

MAC

Media Access Control의 약자입니다. OSI 7계층 중 Data Link 계층에 있는 부계층 중의 하나로, 공유 매체에 여러 단말이 접속할 때 충돌을 방지하기 위한 제어를 담당합니다.
Mutiple-access protocols이라는 다중 접속 프로토콜을 사용합니다.

➡️ 다중 접속 프로토콜 ????

다중 접속은 다수의 시스템들이 매체를 공유하는 환경에서 충돌없이 데이터를 전송하기 위한 방안입니다.
또한 다중접속 프로토콜은 데이터가 충돌하지 않게 전송하는 방안으로 네트워크 모델에서 에러제어, 흐름제어, 접근제어를 하는 Data link계층에서 수행하고 두개의 부계층을 가집니다.
상위에 존재하는 Data link control은 data link에 중요 기능인 error 제어와 같은 control을 하고
하단에 있는 Multiple-access resolution은 매체에 따라서 어떻게 다중접속을 할지 문제를 해결해 주는 역할을 합니다.

상위 부계층: 데이터 링크를 제어
하위 부계층: 공유 매체에 대한 접근 문제를 해결

ARP

Address Resolution Protocol의 준말로, 주소 결정 프로토콜입니다. 논리적인 IP주소를 기반으로 데이터링크 계층의 물리적인 MAC주소로 바꾸어주는 주소해석 프로토콜입니다.



DNS

네트워크 상에서 컴퓨터들은 IP주소를 이용하여 서로를 구별하고 통신합니다. 사람들이 네트워크를 통해 원격의 컴퓨터에 접속하기 위해서는 IP주소를 이용하여야 하지만, 숫자의 연속인 IP주소를 일일이 외울 수 없기 때문에 쉽게 기억할 수 있는 도메인 주소 체계가 만들어졌습니다.
DNS(Domain Name System)은 도메인 이름의 수직적인 체계를 말합니다.

TLS

인터넷에서의 정보를 암호화하여 송수신하는 프로토콜입니다. 흔히 SSL 이라 부르는 것들의 대부분은 TLS 인데, TLS 를 사용해 암호화된 연결을 하는 HTTP 를 HTTPS 라고 합니다. TLS는 다양한 종류의 보안 통신을 하기 위한 프로토콜인데, HTTPS 는 TLS 위에 HTTP 프로토콜을 얹어 보안된 HTTP 통신을 하는 프로토콜입니다.

넷스케이프사에서 개발한 SSL 의 진화된 버전으로 인터넷 통신을 하는 두 사용자가 서로의 신원정보를 인증하는 절차를 갖는 프로토콜입니다. 이 방법을 사용하면 제 3자가 정보를 감청, 조작할 수 없습니다.

TCP / UDP

  • TCP( Transmission Control Protocol ) 전송 제어 프로토콜입니다.
  • HTTP는 자신의 메시지를 전달하기 위해 TCP 프로토콜을 이용합니다.
  • 클라이언트와 서버는 TCP 커넥션이 맺어지면 메시지가 절대 사라지거나 손상되지 않고, 순서가 뒤바뀌는 일도 없는 안정성 있는 프로토콜입니다.
  • TCP는 IP 위에서 동작하는 프로토콜로, 데이터의 전달을 보증하고 보낸 순서대로 받게 해줍니다.
  • IP의 상위 프로토콜인데, 컴퓨터의 위치를 찾아서 메시지를 전달했다면 그 메세지를 확인해야 합니다. 네트워크 상에서 메시지를 전달할 때, 한번에 전달하기보다, 작은 단위)패킷)으로 쪼개서 메시지를 전달합니다.
  • TCP 는 전달받은 패킷들을 재조립하고, 손상되거나 손실된 패킷이 있다면, 재요청합니다.
  • UDP: User Datagram Protocol. UDP는 상대방이 데이터를 잘 받았든 말든 상관하지 않습니다. 즉, 데이터 전달에 대한 안정성을 보장하지 않습니다.
  • UDP가 TCP에 비해 속도가 빠른데, 예를 들어, 유튜브( 스트리밍 )는 데이터가 잘 전달 됐는지( 안정성 ) 보다 속도가 더 중요합니다. 즉, 서비스에 따라 사용하는 프로토콜이 다릅니다.





v8

구글에서 만든 오픈 소스 자바스크립트 엔진으로 크롬 브라우저와 Node.JS에 사용됩니다. C++로 만들어져 있으며 인터프린터 없이 자바스크립트 코드를 머신코드로 바꿔서 속도가 빠릅니다.

크롬 V8엔진의 특성

  • V8엔진은 C++로 작성됐고 Chrome과 Nodejs에서 사용됩니다.
  • V8엔진은 ECMA-262에 기재된 ECMAScript를 구현했습니다.
  • V8엔진은 standalone으로 동작할 수 있어서 우리는 자바스크립트 엔진을 C++ 프로그램에 내장시킬 수 있습니다.

참고1 : https://nomadkim880901.tistory.com/
참고2 : https://sunnykim91.tistory.com/121

7개의 댓글

comment-user-thumbnail
2023년 3월 21일

새로운것도 보이고 알아야 할게 많은거 같아요.. 면접리스트 잘보고 가요!!

답글 달기
comment-user-thumbnail
2023년 3월 25일

맨날 봐도봐도 새로운 통신 ㅠ

답글 달기
comment-user-thumbnail
2023년 3월 26일

깔끔한 정리 잘 읽고 갑니다 🫶

답글 달기
comment-user-thumbnail
2023년 3월 26일

분명 봤던 개념인데 새로워요 .. ㅋㅋ

답글 달기
comment-user-thumbnail
2023년 3월 26일

복습 아주 고맙읍니다! 어떤건 HTTP, 어떤건 Http, 어떤건 http이렇게 쓰셨네요! 불편!! 잘쓰셔서 시비 한번 걸어봤습니다

1개의 답글
comment-user-thumbnail
2023년 3월 26일

코테 글 보다 정리가 깔끔한 거 같아요 ㅋㅋ

답글 달기