전체 글
-
(HTTP) 10 - HTTP 메서드 (GET, POST, PUT, PATCH, DELETE)개발/HTTP 2024. 10. 31. 10:56
■ API URI 고민 중요한 것은 리소스 식별이다. * 리소스란?- 회원 등록, 수정, 조회가 리소스가 아님- 회원이라는 개념 자체가 리소스* 리소스 식별 방법- 회원 등록하고 수정 조회하는 것을 모두 배제- 회원이라는 리소스만 식별하면 된다 -> 회원 리소스를 URI 에 매핑 리소스만 가지고 URI 를 만들면 모두 URI 가 동일하게 만들어진다. 구분 방법이 필요해진다. - 리소스와 행위를 분리해야 한다.- URI 는 리소스만 식별- 리소스와 해당 리소스를 대상으로 하는 행위를 분리한다.ex) 리소스 : 회원행위 : 조회, 등록, 삭제, 변경- 리소스는 명사, 행위는 동사 ■ HTTP 메서드 종류* 주요 메서드- GET : 리소스 조회- POST : 요청 데이터 처리, 주로 등록에 사용- P..
-
(HTTP) 9 - HTTP 메시지개발/HTTP 2024. 10. 31. 09:38
HTTP 메시지 구조는 4가지로 구분된다.1. start-line (시작 라인)2. header (헤더)3. empty line (공백 라인)4. message body (메세지 바디) ■ 요청 메시지1. start-line (시작 라인) : 메서드 + 경로값 + 쿼리 + HTTP 버전2. header (헤더) : 호스트명3. empty line (공백 라인) ※ 전달할 값 있다면 요청 메시지도 body 본문 가질 수 있다. ■ 응답 메시지1. start-line (시작 라인) : HTTP 버전 + 상태 코드값2. header (헤더) : Content-Type + 문자 형태 + 데이터 양3. empty line (공백 라인)4. message body (메세지 바디) : 필요한 HTTP 응답 메시지 ..
-
(HTTP) 8 - connectionless (비연결성)개발/HTTP 2024. 10. 31. 09:04
TCP/IP 의 경우 기본적으로 연결을 유지한다. 따라서 서버가 연결을 유지하는 동안 서버 자원을 계속 소모하게 된다. 이와 다르게 TCP/IP 연결을 요청을 주고 받을때만 한다면서버는 최소한의 자원만 유지하면 된다. ■ 비연결성- HTTP 는 기본이 연결을 유지하지 않는 모델- 일반적으로 초 단위 이하의 빠른 속도로 응답- 1시간 동안 수천명이 서비스를 사용해도 실제 서버에서 동시에 처리하는 요청은 수십개 이하로 매우 작음ex) 웹 브라우저에서 계속 연속해서 검색 버튼 누르지 않는다.- 서버 자원을 매우 효율적으로 사용할 수 있다. ■ 비연결성 한계와 극복- TCP/IP 연결을 새로 맺어야 함 -> 3 way handshake 시간 추가- 웹 브라우저로 사이트를 요청하면 HTML 뿐 아니라자바스크..
-
(HTTP) 7 - Stateful(상태 유지), Stateless(무상태)개발/HTTP 2024. 10. 31. 08:40
■ Stateless (무상태 프로토콜)- 서버가 클라이언트 상태 보존 x ■ Stateful (상태유지)- 서버가 클라이언트 이전 상태를 보존 그러나 점원이 바뀌면 이전 내용을 모른다. 다음과 같이 이전 상태값에 대해서 유지하는 것이다. 무상태 상황에서는 고객이 상태에 대한 값을 모두 점원에게 전달한다.따라서 점원이 중간에 바뀌더라도 값은 동일하게 나온다. ■ 정리- 상태 유지(Stateful) : 중간에 다른 점원으로 바뀌면 안된다. (중간에 다른 점원으로 바뀔 때 상태 정보를 다른 점원에게 미리 넘겨야 함)- 무상태(Stateless) : 중간에 다른 점원으로 바뀌어도 된다.- 갑자기 고객 증가해도 점원 대거 투입 가능- 갑자기 클라이언트 요청 증가해도 서버 대거 투입 가능- 무상태는 응답 서..
-
(HTTP) 6 - HTTP 란?개발/HTTP 2024. 10. 30. 16:54
■ HTTP (Hyper Text Transfer Protocol)과거에는 하이퍼 텍스트 즉, 문서간의 링크를 통해서 연결을 할 수 있는 프로토콜로 사용했으나현재는 HTTP 메시지에 모든 것을 전송한다. - HTML, TEXT- IMAGE, 음성, 영상, 파일- JSON, XML (API)- 거의 모든 형태의 데이터 전송 가능- 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 ■ HTTP 역사 ■ 기반 프로토콜 HTTP/1.1 주로 사용한다.1.1 과 2 는 TCP 기반, 3 은 UDP 기반이다. ■ HTTP 특징- 클라이언트 서버 구조- 무상태 프로토콜(스테이스리스), 비연결성- HTTP 메시지- 단순함, 확장 가능 ■ 클라이언트 서버 구조 클라이언트가 서버에 요청을 보내고(Request) 응답..
-
(HTTP) 5 - URI 와 웹 브라우저 요청 흐름개발/HTTP 2024. 10. 30. 16:26
■ URI (Uniform Resource Identifier - 리소스 식별하는 통합된 방법)※ 리소스 식별 : 주민번호 식별과 비슷하게 생각하면 이해 편함 -> 자원을 식별하는 방법 URI 는 로케이터(locator), 이름(name) 또는 둘 다 추가로 분류될 수 있다. - URL(Resource Locator) : 리소스의 위치- URN(Resource Name) : 리소스 이름 우리가 자주 사용하는 URL 과 말 그대로 이름을 나타내는 URN 이 있다.URN 은 거의 사용하지 않는다. * 단어 뜻- Uniform : 리소스 식별하는 통일된 방식- Resource : 자원, URI 로 식별할 수 있는 모든 것(제한 없음)- Identifier : 다른 항목과 구분하는데 필요한 정보 ■ URL..
-
(HTTP) 4 - DNS개발/HTTP 2024. 10. 30. 15:13
IP 는 길고 외우기 어렵다.더불어 변경 가능성이 있다. ■ DNS (Domain Name System - 도메인 네임 시스템)- 전화번호부- 도메인 명을 IP 주소로 변환 DNS 서버에 IP 주소를 넣으면 도메인으로 검색하면 IP 주소를 주고 IP 주소를 통해 접속 가능하다.만약 IP 가 바뀐다 하더라도 구글쪽에서 DNS 에 있는 IP 만 바꾸면 되기 때문에 문제가 해결된다. https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC 모든 개발자를 위한 HTTP 웹 기본 지식 강의 | 김영한 - 인프런김영한 | 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] ..
-
(HTTP) 3 - PORT개발/HTTP 2024. 10. 30. 14:59
다음과 같이 하나의 IP 에서 여러 응답을 받아야 할 때는 어떻게 할까 TCP 안에는 출발지 PORT 정보고 있어 각각의 애플리케이션 구분이 가능하다. 앞으로는 패킷을 TCP/IP 패킷으로 생각하며,안에는 각각 도착, 목적지를 구분하는 출발지 IP, 도착지 IP 와 애플리케이션을 구분하는 PORT 정보가 같이 있다고 생각한다. 이런 PORT 덕분에 같은 IP 내에서 프로세스를 구분할 수 있다. 비유로는 아파트 = IP 로 몇 동 몇 호 = PORT 로 구분하면 이해하기 쉽다.포트 정보는 다음과 같다. ※ HTTP : 웹 포트, HTTPS : 웹 포트 + 보안 https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED..