본문 바로가기

HTTP

(37)
3월 9일 HTTP 상태코드 3xx 300 Redirection 요청을 완료하기 위해 유저 에이전트(클라이언트)의 추가조치 필요 300 multiple choices 301 Moved Permanently 302 found 303 see order 304 not modified 307 temporary redirect 308 permanent redirect 리다이렉션이란? 웹 브라우저는 3xx응답의 결과에 location 헤어가 있으면 location 위치로 자동이동(리다이렉트) eX)(구)이벤트 페이지를 (신)이벤트 페이지로 변경한 경우 (구)로 접속시 301를 반환해 (신)으로 이동시킨다. 1.요청 get /event HTTP/1.1 // /event가 (구)이벤트 페이지 host : localhost : 8080 2.응답 http/..
3월 9일 HTTP 상태코드 2xx 2xx (성공) (successful) 클라이언트의 요청을 성공적으로 처리 200 ok 201 created (등록성공) 202 accepted 204 no content 200 ok (request) get /members/100 http/1.1 host : localhost : 8080 (response) http/1.1 200 ok content-type : application/json content-length : 34 {"username" : "young" , "age" : 20} 201Created 요청 성공해서 새로운 리소스가 생성됨 post /members http/1.1 content-type : application/json {"username" : "young" , "age" : 2..
3월 9일 HTTP 상태코드 클라이언트가 보낸 요청의 처리상태를 응답에서 알려주는 기능 1xx(information) : 요청시 수신되어 처리중 (거의 사용안함) 2xx(successful) : 요청 정상처리 (성공) 3xx(redirection) : 요청을 완료하려면 추가행동이 필요 (성공을 위해 +@가 필요) 4xx(client error) : 클라이언트 오류 , 잘몬된 문법등으로 서버가 요청을 수행할 수 없음(클라이언트 오류) 5xx(server error) : 서버오류 , 서버가 정상요청을 처리하지 못함(서버 오류) 만약 모르는 상태코드가 나타나면 ? -클라이언트가 인식할 수 없는 상태코드를 서버가 반환하면? -클라이언트는 상위 상태코드로 해석해서 처리 = 백번대 코드로 구별 -미래에 새로운 상태코드가 추가되어도 클라이언트를..
3월 9일 HTTP API 설계 예시 HTTP API - 컬렉션 -post 기반 등록 ex)회원 관리 API 제공 HTTP API - 스토어 -put 기반등록 ex) 정적 컨텐츠 관리 , 원격파일 관리 HTTP FORM 사용 웹페이지 회원관리 , GET , POST만 지원 post와 put은 기능에 차이가 있다. 회원관리 시스템 , API 설계 , POST 기반 등록 회원 목록 /members -> get (조회) get은 해당 리소스의 목록을 가져온다. 회원 등록 /members -> post (등록) post는 해당 리소스의 위치에 값을 추가한다. 회원 조회 /members/{id} ->GET get이 리소스/컬렉션에 값을 가져온다. 회원 수정 /members/{id} -> patch , put , post 회원 삭제 /members/{..
3월 9일 HTTP API전송 클라이언트에서 서버로 바로(중간과정생략) 데이터를 전송할 경우 post /members http/1.1 content-type : application/json {"username" : "young" , "age" : 20} /members 서버가 요청을 받는다. 정리 서버 to 서버 (기계끼리 통신) -벡엔드 시스템 통신 앱 클라이언트 -아이폰/안드로이드 웹 클라이언트 -HTML에서 Form전송 대신 자바스크립트를 통한 AJAX 통신 사용 ex) react , vue와 같은 웹 클라이언트와 API 통신 post , put , patch 메시지 바디를 통해 데이터 전송 get ,조회 , 쿼리 파라미터 데이터 전달 content-type : application json을 주로 사용 ( 사실상 표준) -t..
3월 9일 HTTP 실제 활용 HTTP 실제 활용 1.클라이언트에서 서버로 데이터 전송 2.HTTP API설계 예시 1.클라이언트에서 서버로 데이터 정송하는 2가지 방법 -1. 쿼리 파라미터를 통한 데이터 전송(URI 방법) get 주로 정렬 필터(검색어) -2.메시지 바디를 통한 데이터 전송(HTTP Message body) 방법 post , put , patch 회원가입 , 상품주문 , 리소스 등록 , 리소스 변경 데이터를 전송하는 4가지 상황 1.정적 데이터 조회 -이미지 , 정적 텍스트 문서 2.동적 데이터 조회 -주로 검색, 게시판목록에서 정렬 필터(검색어) 3.HTML Form 을 통한 데이터 전송 -회원가입 , 상품주문 , 데이터 변경 4.HTTP API 를 통한 데이터 전송 -회원가입 , 상품주문 , 데이터변경 -서버t..
3월 9일 HTTP 메소드 속성 1.안전 호출해도 리소스를 변경하지 않는것을 말한다. 만약 같은 요청을 호출해서 로그 같은게 쌓여서 장애가 발행하면? 안전 속성은 리소스에 대해서만 고려한다. 이외의 부분은 고려하지 않는다. get은 안전 post 등은 변경이 일어나서 안전하지 않다. 2.멱등(itenpotent) 전제는 "같은" 요청을 여러번 한다는것 f(f(x)) = f(x) 같은 요청을 한번 호출하든 두번 호출하든 100번 호출하던 항상 결과가 똑같은걸 말한다. 멱등 메서드, get - 한번 조회하든 , 두번 조회하든 같은 결과가 조회된다. put - 결과를 대체한다, 따라서 같은 요청을 여러번 해도 최종결과는 같다. delete - 결과를 삭제한다. 같은 요청을 여러번해도 삭제된 결과는 똑같다. post - 멱등하지 않다. 두번 ..
3월 8일 HTTP put,patch,delete put put/members/100 HTTP/1.1 content-type : application/json {"username" : "hello" , "age":20} 리소스를 대체(바꿔치기) -리소스가 이미 있으면 그것을 대체 -리로스가 없으면 생성 -쉽게 이야기해서 리소스 덮어쓰기 *중요, 클라이언트가 리스소를 식별 -클라이언트가 리소스의 위치를 알고 URI에 지정 -POST와 차이점 post는 /member 까지만 지정한다. 즉 클라이언트가 리소스의 구조를 모른다. put은 /member/100 리소스의 위치까지 지정한다, 그래서 클라이언트가 리소스 구조를 알고 있어야한다. (request) put /members/100 HTTP/1.1 content-type : application/json {..