HTTP

    [모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 상태코드

    상태코드 HTTP API 에 대해 클라이언트가 요청을 보내면 서버측에선 응답 메시지를 보내준다. 응답 메시지 안에 상태코드가 포함 되어 있다. 이 상태코드를 통해서 서버에서 어덯게 처리되었는지를 추측할 수 있다. 1xx(informational) 요청이 수신되어 처리중이다. 2xx(successful) 요청이 정상적으로 처리되었다. 200(OK) GET과 같은 조회 요청에 성공적으로 응답하는 경우 201(Created) POST 와 같은 생성요청으로 리소스가 생성이 정상적으로 된 경우에 해당한다. 응답 메시지에는 생성된 리소스 식별자가 Location 필드에 추가되어 응답된다. 202(Accepted) 요청은 서버에서 받았으나 아직 처리가 되지 않은 경우 204(No Content) 서버에서 요청은 성공..

    [모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 메서드 활용

    데이터 전달 방식은 2가지로 구분 쿼리 파라미터를 통한 데이터 전송 주로 GET을 사용한다. 검색, 정렬 필터에 사용한다. 메시지 바디를 통한 데이터 전송 POST, PUT, PATCH 를 사용한다. 회원가입, 상품 주문, 리소스 등록, 변경에 사용한다. 데이터 전달은 5가지로 구분 정적 데이터 조회 이미지, 정적 테스트 문서 동적 데이터 조회 주소 검색, 게시판 목록에서 정렬 필터(검색어) HTML FORM 을 통한 데이터 전송 회원가입, 상품 주문, 데이터 변경 HTTP API를 통한 데이터 전송 서버 to 서버, 앱 클라이언트, 웹 클라이언트(Ajax), 회원가입, 상품주문, 데이터 변경 정적 데이터 조회 조회는 GET을 사용 쿼리 파라미터는 사용하지 않고 리소스 경로로 단순하게 조회한다. 동적 데..

    [모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 메서드

    API URI 설계 시 포인트 가장 중요한 것은 리소스 식별이다. 리소스란? 동작을 제외한 자원 그 자체를 리소라 한다. 행동은 제외가 되며 예를 들어 삭제, 추가, 수정 등 이러한 행위들은 제외다. 기본적으로 조회 URI를 보면 GET /members/{id} 로 구성한다 계층 구조상 상위 자원을 컬렉션으로 보기에 복수형으로 사용하는 게 좋다. HTTP 메서드 GET 서버에 전달되는 데이터는 query string 을 통해 전달된다. ex) hello=hi&hello=hi 메시지 바디는 사용이 가능하지만 지원되지 않는 곳이 많아 권장하지 않는다. POST 메시지 바디를 통해 서버로 요청 데이터를 전달하면 서버는 해당 데이터를 받아 처리한다. 주로 등록 혹은 프로세스 처리 등에 사용된다. 리소스 등록 서..

    [모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 기본

    [모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 기본

    Stateful, Stateless 비 연결성 ( connectionless ) HTTP 메서드 무상태 프로토콜 ( Stateless ) 상태를 보존하지 않는 다는 뜻이다. 이러한 상태의 단점은 클라이언트에서 서버에 전송 한 정보여도 서버에서는 클라이언트의 상태를 저장하지 않아 계속해서 서버의 원하는 정보를 전송해야 한다. Stateless 상태는 서버의 확장 ( scale out ) 이 쉽다. 어떠한 이벤트 때문에 클라이언트의 요청이 많아진다면 미리 서버를 많이 증설할 수 있다는 뜻이다. 상태유지 ( Stateful ) Stateful 상태면 클라이언트에서 보낸 정보를 서버에서 가지고 있어야 한다. 클라이언트의 정보를 가지고 있는 서버가 동작이 안된다면 해당 클라이언트 정보는 다른 서버가 가지고 있지 ..

    [모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 기본 - 모든 것이 HTTP, 클라이언트 서버 구조

    일반적으로 컴퓨터에서 필요한 데이터는 서버에 요청하여 받아오는데 우리는 네트워크 망을 통해 서버로부터 데이터를 가져오기 위한 통신을 한다. 이러한 통신은 HTTP 통신과 Socket 통신 2가지가 있다. HTTP (HyperText Transfer Protocol ) 하이퍼 텍스트를 주고 받기 위한 통신 규약 ( 규칙 ) 이다. HTTP 메시지 모든 형태의 데이터를 전송 할 수 있다. html, text image, 음성, 영상, 파일 json, xml(api) 서버 간에 데이터를 주고 받을 때도 대부분 http를 사용한다. TCP 프로토콜을 직접 사용해서 통신하는 경우는 게임 서버를 제외하고는 거의 없다. HTTP 기반 프로토콜 TCP UDP HTTP 특징 클라이언트 서버의 구조 무상태 프로토콜(Sta..

    [모든 개발자를 위한 HTTP 웹 기본 지식]URI와 웹 브라우저 요청 흐름 - URI, 웹 브라우저의 요청 흐름

    [모든 개발자를 위한 HTTP 웹 기본 지식]URI와 웹 브라우저 요청 흐름 - URI, 웹 브라우저의 요청 흐름

    URI는 Uniform Resource Identifier의 약자로 URL과 URN을 포함한 큰 틀을 의미한다. URI ( Uniform Resource Identifier ) 리소스를 보여 줄 수 있도록 해주는 식별자 URL ( Uniform Resource Locater ) 리소스가 있는 위치를 지정 어떠한 자원에 대해서 위치와 어떤 자원을 원하는지 구체적으로 서술된 형태 인터넷에 접속 시 사용하는 주소 형식 URN ( Uniform Resource Name ) 리소스에 이름을 부여하여 리소스를 식별한다. 한계점 자원에 대해 이름만으로 리소스를 식별하는데에 한계가 존재 URL의 구조를 살펴보자 URL 구조 구조는 다음과 같다. scheme authority path query fragment sche..

    [모든 개발자를 위한 HTTP 웹 기본 지식] 인터넷 네트워크 - PORT, DNS

    Port 하나의 클라이언트에 여러대의 서버를 연결해야 한다면 IP 패킷의 정보만으로 어떤 서버에서 어떤 프로그램이 온 것인지 알 수가 없다. 이를 구분하기 위해 TCP / IP 패킷 정보에 port 번호를 추가로 제공하여 전달한다. IP 서버를 찾는 용도 port 서버 내부에서 돌아가는 프로그램을 구분하는 용도 포트 번호 ftp - 20, 21 telnet - 23 http - 80 https - 443 0 ~ 65535 할당 가능 0 ~ 1023 잘 알려진 포트, 사용하지 않는 것이 좋음 DNS ( Domain Name System ) 도메인 명을 IP 주소로 변환 시켜주는 시스템이다. 왜 DNS 가 나왔을까? IP 주소를 사용하는데 10자리 이상의 주소값을 기억하기가 어렵다. 또한 주소가 변경이 되면..

    [모든 개발자를 위한 HTTP 웹 기본 지식] 인터넷 네트워크 - TCP, UDP

    [모든 개발자를 위한 HTTP 웹 기본 지식] 인터넷 네트워크 - TCP, UDP

    TCP IP 프로토콜의 문제점을 해결 인터넷 프로토콜 4 계층 그림 프로토콜 계층의 동작 순서 데이터를 전달하는 과정을 설명 1. 클라이언트에서 데이터를 전달 2. 데이터를 SOCKET 라이브러를 통해 OS계층에 전달한다. 3. TCP 계층에서 데이터를 포함한 TCP 정보를 생성한다. 4. IP 계층에서 전달 받은 TCP 정보를 IP 패킷으로 생성한다. 5. IP 패킷이 LAN 카드를 통해 나갈 떄 Ethernet Frame 이 포함되어 나간다. Ethernet Frame : LAN 카드의 MAC 주소 등 물리적 정보 TCP 정보가 추가되면서 IP의 한계점이 해결되었다. TCP(전송 제어 프로토콜) 특징 연결지향 - 3 way handshake 논리적 연결 후 메시지를 보낸다. 클라이언트가 서버에게 접속..

    [모든 개발자를 위한 HTTP 웹 기본 지식] 인터넷 네트워크 - 인터넷 통신, IP(인터넷 프로토콜)

    [모든 개발자를 위한 HTTP 웹 기본 지식] 인터넷 네트워크 - 인터넷 통신, IP(인터넷 프로토콜)

    인터넷 통신은 어떻게 동작이 될까? 위의 그림을 보다시피 클라이언트와 서버간에 요청과 응답으로 동작하게 된다. 클라이언트와 서버가 가까이 있을 시 (같은 pc..) 다이렉트로 연결하여 통신을 할 수 있게 만들 수 있다. 하지만 서로 다른 pc 라면 클라이언트에서 요청을 보내어 통신 하려면 인터넷 망이라는 곳을 거처야 한다. 인터넷 망 내부에는 수많은 노드들이 존재한다. 어떠한 규칙으로 각 노드들을 거쳐 서버에 요청을 줄 수 있을까? 이 규칙은 인터넷 프로토콜이라 한다. 인터넷 프로토콜에 대해 알아보자. 인터넷 프로토콜 (IP) IP 는 주소라고 생각하면 되고 클라이언트와 서버에게 IP의 주소를 할당하여 패킷 통신 단위로 데이터를 전달 할 수 있다.. 아래 그림을 참고하자. IP 패킷 정보 위에서 말했듯 ..