본문 바로가기

HTTP10

[HTTP] Payload 용어 설명 HTTP Message Body를 Payload라고 한다. Content-Length는 페이로드 관련 정보이므로 표현헤더 중에서도 페이로드 메시지이다. 참고: 표현 헤더는 표현 메타데이터와, 페이로드 메시지를 구분한다. 참고: 인프런 - 모든 개발자를 위한 HTTP 웹 기본 지식 강의(김영한) 2022. 2. 15.
모든 개발자를 위한 HTTP 웹 기본 지식_섹션6_4xx_5xx_에러코드 4xx - 클라이언트 오류, 5xx - 클라이언트 오류 에러 Status Code에 알아보자! 4xx (Client Error) 클라이언트 오류 클라이언트의 요청에 잘못된 문법등으로 서버가 요청을 수행할 수 없음 오류의 원인이 클라이언트에 있음 중요! 클라이언트가 이미 잘못된 요청, 데이터를 보내고 있기 때문에, 똑같은 재시도가 실패함 NOTE 4xx vs 5xx (1) 400대 오류는 클라이언트 오류로 요청 자체가 잘못된 것으로 똑같은 요청&데이터로 재요청을 해도 항상 실패한다. (2) 반면에 500대 오류는 서버 오류로 서버가 복구만 된다면 똑같은 요청&데이터로 재요청해도 성공할 수 있다. 400 Bad Request 클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할 수 없음 요청 구문, 메시지 .. 2022. 2. 15.
모든 개발자를 위한 HTTP 웹 기본 지식_섹션6_3xx_Redirection(2) 일시적인 리다이렉션 302, 307, 303 리소스의 URI가 일시적으로 변경된다. 따라서 검색엔진 등에서 URL을 변경하면 안된다(영구적으로 바뀐것이 아니므로). 307과 303의 탄생 비화 😂 원래는 302 statusCode로 리다이렉트시 요청 메소드가 POST 였으면 POST로 재요청하도록 스펙을 만든 것이었는데, 브라우저들이 301처럼 get으로 모두 바꿔서 요청하는 바람에 하는 수 없이 302는 get으로 변하도록, 307은 원래 요청 메소드와 변하지 않도록 스펙을 추가하였다고 한다. 303은 302가 거의 다 get으로 바꿔 보내지만 MAY이므로 무조건적으로 리다이렉트가 get이었으면 하는 바람 때문에 생긴 Status Code 이다. 302, 307, 303의 기능은 모두 같으나 아래처럼 .. 2022. 2. 14.
모든 개발자를 위한 HTTP 웹 기본 지식_섹션6_3xx_Redirection(1) 3xx (Redirection) 요청을 완료하기 위해 유저 에이전트의 추가 조치 필요 서버가 오? 요청을 완료하려면, 클라이언트야~ 뭔가 추가적인 작업이 필요해 ^^ 라는 상태코드를 말한다. 300대 상태코드들 300 Mutilple Choices (300은 거의 쓰지 않는다) 301 Moved Permanently 302 Found 303 See Other 304 Not Modified 307 Temporary Redirect 308 Permanent Redirect 리다이렉션 이해 웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면, Location 위치로 자동 이동(리다이렉트)한다. => 301 Moved Permanently. 경로가 영원히 이동했으므로 해당 Location으로 자동.. 2022. 2. 14.
모든 개발자를 위한 HTTP 웹 기본 지식_섹션5_HTTP메소드_응용 클라이언트에서 서버로 데이터 전송 데이터 전달 방식은 크게 2가지 쿼리 파라미터를 통한 데이터 전송 GET 주로 정렬 필터(검색어) 예시) 앱 클라이어언트에서 웹뷰 띄울때 => 스터디때 치느님 명세서 보여드리자 메시지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 예시) 로그인, 프로필 설정 => 스터디때 뇽뇽 코드를 보여드리자 HTML Form을 통한 데이터 전송 회원 가입, 상품 주문, 데이터 변경 POST 일때는 Content-Type이 application/x-www-form-urlencoded 이고 httpbody에 urlEncoding 방식으로 데이터가 들어갑니다. 앱에서 URLEncoding 예시) iOS 라이브러리로 많이 사용되는.. 2022. 2. 8.
모든 개발자를 위한 HTTP 웹 기본 지식_섹션4_HTTP_메서드 1. HTTP를 만들어보자. 아래의 기능을 할 수 있는 HTTP API를 만든다고 가정해보자. 회원 목록 조회 회원 조회 회원 등록 회원 수정 회원 삭제 초보개발자 아무개가 위 기능에 대해 api path를 어떻게 이름 지을지 고민하다 음 그래 역시 뭐든 의도가 분명하게 적어야지! 라며 다음과 같이 정한다고 가정해보자. 회원 목록 조회 /read-member-list 회원 조회 /read-member-by-id 회원 등록 /create-member 회원 수정 /update-member 회원 삭제 /delete-member 음 그래,, URI 이름의 동사를 보면 의도가 분명하여 함수 메소드라고 생각하면 잘 지었다고 생각할 수 있다. 하지만 과연 옳게 지었는가? 이것이 과연 좋은 URL 설계인가?(실제로 이.. 2022. 2. 6.