본문 바로가기

HTTP

(37)
3월 8일 HTTP 메서드 HTTP 메서드(api 만들기) 1.요구사항 파악(가장 중요한건 리소스 파악) 리소스의 의미란? *회원을 등록하고 수정하고 조회하는게 리소스가 아니다 위 요구사항에서 등록,수정,조회와 같은 동작이 리소스가 아니라 회원이 리소스이다. 리소스를 어떻게 식별하는게 좋을까? 회원을 등록하고 수정하고 조회하는것을 모두 배제 회원이라는 리소스를 식별하면된다 -> 회원 리소스를 URI에 매핑 회원 목록 조회 /members/~ 회원 조회 /members/~ 회원 등록 /members/~ 회원 수정 /members/~ 회원 삭제 /members/~ URI 계층 구조로 설계한다. /리소스/행동(메소드) URI는 리소스만 식별 *리소스만 잘 식별하면 된다. 리소스와 해당리소스를 대상으로 하는 행위를 분리한다. 리소스 : ..
3월 8일 HTTP 메시지 HTTP 메시지 인터넷의 모든것은 HTTP HTML , TEXT Image , 음성 , 영상 , 파일 , JSON , XML 등 거의 모든 형태의 데이터 전송 가능 서버간에 데이터를 주고 받을때도 대부분 HTTP 사용 메시지에는 요청메시지와 응답메시지가 있다 HTTP메시지의 구조 1.start line 2.header 3.공백(꼭 있어야함) 4.메시지 영역 요청메시지 GET /search?q=hello&h1=ko http/1.1 host : www.google.com (공백) 응답메시지 HTTP/1.1 200 ok content-type : text/html; charset = UTF-8 content-length:3423 (공백) message 요청메시지와 응답메시지는 시작라인부터가 다른형태를 하고있다..
1월 5일 HTTP 비연결성 연결유지 클라이언트1이 서버에 요청을 보내고 서버가 응답하면 이걸 연결을 유지한다 가정하고 이때 클라이언트 2, 3이 서버에 보낸 요청도 모두 연결되는데 그럼 서버는 현재 클라이언트 1,2,3에게 모두 연결되어 자원이 소모되고 있는 상태이다. 비연결 클라이언트1의 요청을 서버가 받고 응답이 완료된 후 응답을 끊어 버리게 된다, 그래서 서버유지 자원을 최소화 할 수 있다. * HTTP는 기본적으로 연결을 유지하지 않는 모델이다. 일반적으로 초 단위 이하의 빠른 응답. 1시간동안 수천명이 서비스를 사용해도 실제 서버에서 동시에 처리하는 요청은 수십개 이하로 매우 적다. ex) 웹 브라우저에서 계속 연결하여 검색버튼을 누르지는 않는다. 서버 자원을 모두 효율적으로 사용할 수 있음. 비연결성의 단점(한계의 극복..
1월 4일 HTTP 무상태 프로토콜 ,쿠키와 세션의 상태유지 (중요)무상태 프로토콜(스테이스 리스 (stateless)) 서버가 클라이언트의 상태를 보존하지 않는다. 의미. stateful - 상태유지 stateless - 상태를 유지하지 않는다. stateful 서버가 클라이언트의 상태를 보존하여 이 상태를 서버 a,b,c 가 공유할수 있게 하는것 클라이언트가 보낸 데이터를 유지, (데이터가 상태를 1개씩 받아 계승시키는 상태, 사실상 에러상태이다) stateless 각 서버는 클라이언트가 보낸 데이터(상태)를 유지 시키지 않는다. 대신 데이터를 한번에 받아 어떤 서버가 요청을 받더라도 응답이 가능해진다 (이 방식이 엄청난 확장성을 가진다) 상태유지 : 중간에 다른 서버로 바뀌면 안된다. (중간에 요청한 서버가 다른서버로 바뀌게 되면 이전까지의 요청정보를 모두 ..
1월 3일 HTTP HTTP(Hyper text transfer protocol) HTTP(Hyper text transfer protocol) 인터넷상의 통신규약을 말한다 모든것을 http에 담아서 전송한다. http/1.1, 가장 많이 사용 , 우리에게 가장 중요한 버전이다. TCP/ , HTTP /1.1 , HTTP/2 UDP / HTTP3 현재 주로 http 1.1을 사용한다. 클라이언트 서버구조 무상태 프로토콜(스테이스 디스) , 비연결성 Http 메세지 단순함 , 확장 가능 HTTP 클라이언트 , 서버구조 request . response 구조 클라이언트는 서버에 요청을 보내고 응답을 대기. 서버가 요청에 대한 응답을 결과로 반환한다. 요청을 보낸 클라이언트는 서버의 응답을 기다린다. 중요한건 클라이언트와 서버를 분리하는것. 비즈니스 로직이나 데이터는 서버에 다 넣고 , U..
12월 28일 Http 웹브라우저 요청 흐름 웹 브라우저 요청 흐름 URI 로 접속 1.www.google.com 을 찾기위해 DNS 서버에서 IP를 조회한다 2.찾았다면 http 요청 메시지를 작성한다 get /search?q=hello&h1=ok HTTP/1.1 HOST:www.google.com (TCP / IP로 서버와 3hs가 성공 했다면) 3.socket 라이브러리를 통해 OS (tcp/ip)에 전달 이때 http를 TCP / IP가 감싸면서 port값을 가진다. 4. 이 값이 인터넷으로 흘러가게 된다. 5. 서버가 이 요청을 받으면 TCP/IP 의 포장을 버리고 요청메시지를 분석한다. 그 후 분석에 따른 메시지를 찾는다. 6. 응답 메시지를 생성해 낸다. 7. 다시 TCP / IP를 씌워서 클라이언트에게 전달한다. 8. 이렇게 서버에서..
12월 28일 Http URI (Uniform Resource Identifier) URI 리소스를 식별하기 위한 방법 URI는 로케이터(locator) 이름 (name) 또는 둘다 추가로 분류될 수 있다. URI (가장 큰 개념) URL = locator URN = name locator는 리소스의 위치 (주소) // http~.~ name 는 리소스의 이름 // http ~ : ~ : 이름은 식별이 어려워 URL을 많이 쓴다. Uniform = 리소스를 식별하는 통일된 방식 Resource = 자원 URI로 식별할 수 있는 모든것 (제한 없음) Identifier = 다른 항목과 구분하는데 필요한 정보 (식별 정보) URL = locator 리소스가 있는 위치를 지정 URN = name 리소스에 이름을 부여 위치는 변할 수 있지만 이름은 변하지 않는다. URN 만으로는 실제 리소스를..
12월 28일 Http DNS 도메인 네임 시스템 IP는 기억하기 어렵고 변경될수도 있다. DNS가 도메인명을 IP주소로 반환한다. 도메인명을 등록하고 여기에 IP값을 넣어주는 것으로 도메인이 IP를 대신할 수 있다. 도메인을 먼저 찾고 이에 맞는 IP주소를 찾는다.