CS/네트워크

    [CS - 네트워크] HTTP와 HTTPS

    HTTP와 HTTPS HTTP에는 3가지 문제점이 있다. 각각에 대한 보완점이 있는데, HTTPS는 이 3가지 문제점을 모두 보완할 수 있다. HTTP의 3가지 문제점이 어떤 것이며, HTTPS의 개념 및 구조와 어떻게 문제점들을 보완할 수 있는지 알아보자. HTTP의 3가지 문제점 첫번째로, HTTP는 TCP/IP 통신을 하고, 이는 평문 통신이라 도청 가능한 네크워크라는 점이다. TCP/IP 구조의 통신은 경로 상에서 엿볼 수 있고, 암호화가 되지 않았기 때문에 의미를 파악할 수 있다. 또한 패킷을 수집하는 것만으로도 도청 가능성이 있다. 때문에 암호화가 필요하다. 보완 방법으로는, 통신 자체를 암호화된 통신을 사용할 수 있다. SSL(Secure Socket Layer) 또는 TSL(Transpor..

    [CS - 네트워크] 검색창에 “www.google.com”을 검색하면 네트워크에서 벌어지는 일 (네트워크 관점)

    검색창에 “www.google.com” 을 검색하면 네트워크에서 벌어지는 일 인터넷 브라우저에 “www.google.com”을 검색하면 어떤 과정으로 진행되는지 네트워크 관점에서 알아보자. 간략한 과정 구체적인 과정 정리 사용자가 인터넷 URL에 www.google.com을 검색한다. 클라이언트의 Application 계층에서, 브라우저 DNS를 통해 해당 URL이 어떤 IP 주소를 가지는지 찾는다. 클라이언트의 Application 계층에서 Transport 계층으로, 헤더에 Request 메세지를 덧붙여서 보낸다. (캡슐화) (이 페이지 좀 띄우자~) 클라이언트의 Transport 계층에서, TCP 프로토콜을 통해 패킷으로 서버 컴퓨터에 전송한다. 이때 전기 신호로 랜선을 통해 서버 IP 주소로 전송..

    [CS - 네트워크] HTTP (개념, 구조, method, status code 등)

    HTTP HTTP가 뭘까? 광범위한 질문일 수도 있다. 우선 단어의 뜻부터 찬찬히 살펴보자. 뜻 HTTP는 Hyper Text Transport Protocol, 텍스트 전송 프로토콜이다. HTTP를 통해 컴퓨터끼리 텍스트 데이터를 전송한다. 구체적으로 어떻게 HTTP로 데이터를 전송하는 걸까? 구조 클라이언트는 서버에게 HTTP Request를 보내고, 서버는 클라이언트에게 HTTP Response를 보낸다. HTTP Request는 start line, header, body로 이루어져 있고, start line은 method, path, HTTP version으로 구성되어 있다. HTTP Response는 status line, header, body로 이루어져 있고, status line은 HTT..

    [CS - 네트워크] 쿠키와 세션 (Cookie, Session)

    쿠키와 세션 쿠키와 세션이 무엇일까? 개념과 함께 쿠키와 세션이 나오게 된 배경부터 알아보자. 배경 HTTP에서는 클라이언트가 서버에 Request를 보낼 때마다 정보를 요청해야 한다. 왜냐하면 HTTP의 특징인 비연속성(connectionless), 비상태성(stateless) 때문에 정보가 저장되지 않기 때문이다. 이 방식은 너무 비효율적이기 때문에, 정보를 저장할 수 있는 방식을 고안했고, 이게 바로 쿠키와 세션이다. 즉, 쿠키와 세션은 HTTP의 비연속성, 비상태성 특성을 보완하면서 상태를 저장하기 위한 것이다. 이것이 쿠키와 세션의 대략적인 개념와 필요한 이유다. 그렇담 각각 어떤 것을 의미하며, 구현과 원리가 어떻게 될까? 쿠키, Cookie 쿠키는 클라이언트(브라우저)에 있는 로컬 쿠키 저장..

    [CS - 네트워크] 3-way handshaking, 4-way handshaking

    3-way handshaking과 4-way handshaking 3-way handshaking TCP 프로토콜은 연결 지향이기 때문에 connection setup → data transfer → connection termination 의 과정이 있다. 여기서 connection setup하기 위해 3-way handshaking 방식이 쓰인다. 3-way handshaking은 TCP 프로토콜에서 상대방 컴퓨터에 대한 논리적 연결성을 확보학기 위해 연결을 수립하기 위한 절차다. 여기 통신을 하려는 클라이언트와 서버가 있다. 클라이언트에서는 연결을 수립하기 위해 3-way handshaking을 사용한다. 먼저 클라이언트에서 서버에 SYN segment를 보낸다. 그러면 서버에서는 SYN을 받았고,..

    [CS - 네트워크] TCP와 UDP

    TCP와 UDP 일단 TCP와 UDP 둘 다 TCP/IP 4계층의 전송 계층에서 발생하는 프로토콜이다. 전송 계층은 말 그대로 데이터의 전송을 담당하는 계층이고, 여기서 데이터를 보내기 위해 사용하는 프로토콜이 있는데, 이것들이 바로 TCP와 UDP다. 응용 계층으로부터 메세지를 전달받아서, 전송 계층 패킷으로 캡슐화하여 주고 받는다. TCP에서 사용하는 패킷을 segment, UDP에서 사용하는 패킷을 datagram이라고 한다. 각각의 특징을 알아보즈아 ~ TCP (Transmission Control Protocol) 연결 지향 데이터를 전송하기 전, 먼저 두 호스트의 전송 계층 사이에 논리적 연결을 설립 그 후 데이터 전송하고 완료했으면 연결 해제 connection setup → data tra..

    [CS - 네트워크] OSI 7계층과 TCP/IP 4계층 (또는 5계층)

    OSI 7계층과 TCP/IP 4계층 (또는 5계층) 개념 OSI (Open System Interconnection) 7계층은 네트워크 통신을 표준화한 모델로, 통신 시스템을 7단계로 나누어 설명한 것이다. TCP/IP (Transmission Control Protocol, Internet Protocol) 4계층은 OSI 모델이 실무적으로 이용하기에 복잡한 탓에 실제 인터넷에서는 이를 단순화한 것이다. OSI 7계층, TCP/IP 4계층의 각 계층은 하위 계층의 기능을 이용하고, 상위 계층에게 기능을 제공한다. 일반적으로 상위 계층은 소프트웨어, 하위 계층은 하드웨어로 구현된다. 쉽게 정리하자면, OSI 7계층은 이론 모델, TCP/IP 4계층은 실생활 모델이라고 할 수 있다. 계층 구조 캡슐화, 역..