HTTP 상태 코드 클라이언트가 서버에 보낸 요청이 어떻게 처리 되었는지를 보여주는 코드. 1xx (Informational) : 요청이 수신되어 처리 중 2xx (Sucessful) : 요청 정상 처리 3xx (Redirection) : 요청을 완료하려면 추가 행동이 필요 4xx (Client Error) : 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음. 5xx (Server Error) : 서버 오류, 서버가 정상 요청을 처리하지 못함. 만약 모르는 상태 코드가 나타나면? 클라이언트가 인식할 수 없는 상태코드를 서버가 반환하면, 클라이언트는 상위 상태 코드로 해석해서 처리한다. 상위 상태 코드를 보고 필요한 일을 처리하면 되고, 이 덕분에 미래에 새로운 상태 코드가 추가되어도 클..
HTTP API를 만들어보기 요구 사항 (회원 정보 관리 API를 만들어라) 회원 목록 조회 회원 조회 회원 등록 회원 수정 회원 삭제 위와 같은 API 요구 사항이 있다면, API 설계는 어떻게 해야할까? API URI 설계 (URI : Uniform Resource Identifier) URI는 계층 구조를 써야함. (read/member/list 형식) 회원 목록 조회 → /read-member-list 회원 조회 → /read-member-by-id 회원 등록 → /create-member 회원 수정 → /update-member 회원 삭제 → /delete-member API URI 설계를 할 때, 위처럼 계층 구조를 활용해서 만들 수도 있다. 그런데 이렇게 하는 것이 정말 좋은 것일까? 그렇지..
모든 것이 HTTP HTTP는 HyperText Transfer Protocol의 약자다. 현재는 HTTP 메시지에 모든 것을 담아서 전송한다. (HTML, TEXT, 이미지, 음성, 영상, 파일, JSON, XML) 거의 모든 형태의 데이터가 전송 가능. 서버 간에 데이터를 주고 받을 때도 대부분 HTTP를 사용한다. 기반 프로토콜은 뭘까? TCP : HTTP/ 1.1 , HTTP/ 2는 TCP 위에서 동작함 UDP : HTTP / 3 현재 HTTP/1.1을 주로 사용하고 있으며, HTTP/2, HTTP/3도 사용 빈도가 증가하고 있다. TCP는 안정적인 프로토콜이지만, 3 Way HandShake를 해야하며 포함되는 데이터가 많기 때문에 느린 편이다. UDP 프로토콜에서 어플리케이션 기반으로 성능을 ..
URI(Uniform Resource Identifier) URI라는 것은 Resource를 구별할 수 있는 방법을 이야기한다. 예를 들어 주민등록번호가 하나의 URI가 될 수 있다. 그 값을 보면 누구인지 식별을 할 수 있는 것이다. 여기서 말하는 Resource는 어떠한 것들도 올 수 있다. URI는 Locator와 Name으로 구별할 수 있다. URL(Uniform Resource Locator) : 리소스가 사는 곳. 내가 사는 곳으로 볼 수 있다. → https://google.com URN(Uniform Resource Name) : 내 이름으로 볼 수 있다. → animal:feret:nose, ISBN 이름만으로는 내가 원하는 곳에 찾아갈 수 없다. 예를 들어 김서방이라는 사람을 찾고 싶은..
인터넷 네트워크 구조 들어가기 전 인터넷 네트워크 구조에는 IP, TCP, UDP, DNS, PORT가 있다. 우리가 누군가에게 메세지를 보낼 때, 위와 같은 형태로 동작한다. 클라이언트(나)가 데이터 발송을 요청하면, 데이터는 Internet으로 표현되는 수많은 노드를 여러가지 방식으로 타고, Server에 데이터가 전달되는 방식이다. 아래에는 이런 인터넷 네트워크 통신을 하는데 필요한 통신 규약 등을 이야기 한다. IP(Internet Protocol) 클라이언트와 서버가 통신을 하는데 필요한 최소한의 규칙 IP는 출발지 IP 주소에서 목적지 IP 주소로 정보를 '패킷'단위로 전달한다(앞으로 IP 패킷을 전달한다고 표현한다) IP 패킷 정보 IP 패킷 정보에는 보내고자 하는 데이터, 출발지 IP 주소..