우리가 웹 사이트를 요청하고 응답할 때 HTTP라는 프로토콜을 통해서 데이터를 주고 받는다. 클라이언트는 서버로부터 응답을 받을 때 웹 페이지뿐만 아니라 HTTP 패킷에 응답의 정보를 담은 코드를 함께 받는데, 이 코드를 HTTP 응답코드(HTTP Response Code)라고 한다. 이는 상태코드라고도 한다. 클라이언트에서는 이 응답코드에 따라서 응답의 상태를 판단하게 된다. 예를 들어 정상적으로 응답이 오지 않았다면, 어떤 이유에서 오류가 났는지 에러 페이지를 출력할 때 이 정보를 사용하여 사용자에게 전달해준다. 대표적으로 아래와 같은 화면을 종종 볼 수 있을 것이다. 404 - Not Fount라는 응답코드이다. 읽어보면 서버에 없는 페이지를 요청했기 때문에 저런 응답을 했다는 것을 알 수 있을 것..
도메인 네임(Domain Name) 처음 인터넷 상에서는 어떤 사이트를 접근하고자 할 때, IP주소만을 통해서 접근할 수 있었다. 하지만 IP주소라는 것은 32비트 2진수의 값을 단순이 8비트 씩 묶어서 표현한 것에 불과하여, 사람이 그 주소를 쉽게 이해하고 외워서 사용하기는 힘들었다. IP 주소에 대한 자세한 정보는 아래 링크에 정리되어 있으니 참고하기 바란다. [Network]IP 주소(IP Address)http://hyoje420.tistory.com/10 사람들은 어떤 웹 사이트에 접근할 때, IP주소가 아니라 어떤 별명을 붙여서 접속할 수 있다면 더욱 편리할 것이라는 생각을 했다. 그 결과로 나타난 것이 도메인 주소(Domain Address)이다. 이 주소는 IP주소와 다르게 어떤 의미를 가..
먼저 이 글을 이해하려면 IP주소에 관한 개념을 알고 넘어가야한다. 따로 정리해 놓은 글이 있으니 참고를 하기 바란다. [Network]IP주소(IP Address)http://hyoje420.tistory.com/10 네트워크 클래스 등장배경 먼저 IPv4는 32비트로 이루어져 있다. 따라서 2^32, 약 40억개의 주소를 가진다. 처음에 IP주소를 설계할 때는 40억개 정도면 충분히 전인류가 사용할 수 있을줄 알았다. 하지만 사용하다보니 턱없이 부족한 수라는 것을 알게 되었다. 우리가 개인적으로 가지고 있는 기기의 종류만해도, 노트북, 스마트폰, PC 등이 있다. 전세계 인구가 대략 75억명 이라고 하는데, 각자 스마트폰 하나씩에 IP주소 하나씩만 부여해도 IPv4의 주소체계로는 개별적으로 부여할 수..
이 글을 읽기전에 IP주소의 개념과 네트워크 클래스를 알 필요가 있다. 따라서 이 글을 읽기 전에 링크를 참고하기를 추천한다. [Network]IP주소(IP Address)http://hyoje420.tistory.com/10 [Network]네트워크 클래스(Network Class)http://hyoje420.tistory.com/31 서브넷 탄생배경 클래스 단위로 네트워크를 분류하다보니, 어떤 기업에서는 적은 양의 호스트 주소가 필요한데, B Class 네트워크를 할당받아서 IP주소에 여유가 생기게 되고, 어떤 기업에서는 많은 양의 호스트 주소가 필요한데, C Class 네트워크를 할당받아서 IP주소가 부족해지는 현상이 생기게 된다. 따라서 클래스로만 네트워크를 분류하는 것은 비효율적이라는 결론이 나..
IP(Internet Protocol) IP 주소를 알기전에 간단하게 IP를 먼저 알아보자. 이는 Internet Protocol의 약자로 패킷 교환 네트워크(인터넷)에서 데이터를 주고받을 때의 통신 규약이다. OSI계층에서 IP계층은 호스트의 주소지정과 패킷분할 및 조립 기능을 담당한다. IP Address(Internet Protocol Address) 우리는 편지를 보낼때 도착 주소를 반드시 명시해야한다. 그래야 그 편지는 우리가 원하는 목적지에 잘 전달될 것이다. 그리고 보낸 곳이 어딘지 정확히 명시해 주어야 받는 사람이 알 수 있을 것이다. 컴퓨터에서도 마찬가지 이다. 각기 떨어져 있는 컴퓨터들이 다른 컴퓨터로 데이터를 전송하고 주고받기 위해서는 각 컴퓨터들의 주소가 존재해야 한다. 그래야 내가..
클라이언트가 서버에게 어떤 페이지를 요청한다. 그럼 서버는 그 페이지를 클라이언트에게 전송해준다. 클라이언트가 요청하는 페이지는 크게 두 종류가 있다. 정적 페이지(Static Page) HTML파일과 CSS파일, 이미지파일과 같이 어떠한 클라이언트에서 요청해도 동일한 결과를 보여주는 페이지이다. 동적 페이지(Dynamic Page) PHP파일, JSP파일이 대표적으로 존재하며, 일정한 데이터의 처리가 필요한 페이지이다. DB에 저장된 특정한 정보를 가져와서 동적으로 생성된 페이지를 뜻한다. 이 페이지는 사용자마다의 데이터가 구별되어 다른 페이지를 보여주게 된다. 서버에서 위의 두 페이지를 처리하는 방식이 같을 수는 없을 것이다. 정적 페이지는 어떤 특정한 처리과정이 없어 전송만 해줘도 되지만, 동적 페..
클라이언트와 서버가 TCP소켓으로 연결할때 서로의 연결상태를 3단계로 확인하는 것이 3-Way Handshake다. 이를 이해하려면 먼저 TCP소켓의 특징에 대하여 알아야할 필요가 있다. TCP는 연결 지향 소켓으로 클라이언트와 서버가 연결되었는지 확인하는 과정이 존재한다. 그 확인하는 과정중에 하나의 방법이 3-Way Handshake이다. 이를 수행하는 정확한 목적을 무엇이냐고 묻는다면, 클라이언트에서 서버로 통신할 수 있는 경로를 생성하고 검사하는 작업이라고 할 수 있다. 처음에 클라이언트는 서버의 IP주소를 가지고 서버에 접근한다. 그 IP에 도달하기 위한 다양한 경로 중 가장 적절한 경로(라우터의 역할)를 거쳐서 도달하게 된다. TCP는 이런 경로가 생성되고 나면 그 경로를 통해 클라이언트, 서..