![Thumbnail](https://cdn.inflearn.com/public/courses/326277/cover/52d4f143-b470-4109-96cb-a0b146fb42ed/http.png)
25%
33,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨모든 개발자를 위한 HTTP 웹 기본 지식
GET도 message body를 포함하는 경우 캐시하기 힘든가요 ?
밑에 질문 글과 강의를 종합해 볼 때 1. 리소스가 변경되는 Method일 때는 캐시가 유용하지 않다 2. 요청이 message body를 포함할 때 캐시키를 만들기 어려워서 구현이 어렵다 이렇게 이해했는데요. 2번에 걸려서 GET도 캐시가 어려워질 수 있는지 궁금합니다
- 미해결모든 개발자를 위한 HTTP 웹 기본 지식
HTTP 요청 메시지에서 path에 대한 정의가 헷갈립니다.
안녕하세요. 좋은 강의 감사드립니다. HTTP 메시지의 요청 메시지 구조에서 `/search`로 시작하는 path가 절대경로라고 하셨는데 host(server URL)에 대한 상대 경로 아닌가요? Swagger OpenAPI 3.0 스펙에서는 아래와 같이 명시하고 있습니다. All paths are relative to the API server URL. The full request URL is constructed as <server-url>/path. `/` 루트 경로로 시작하면 절대경로라고 알고 있기 합니다. 절대경로가 맞다면 Host URL와 분리해서 말씀하신 건가요? 만약 그렇다면 강의에서 지칭하고 있는 API URL은 Host URL을 제외한 엔드포인트 경로인가요? 이부분도 위에 적은 'The full request URL is constructed as <server-url>/path.' 문구와 다르게 때문에 헷갈립니다. 명확한 정의 부탁드립니다. 감사합니다.
- 미해결모든 개발자를 위한 HTTP 웹 기본 지식
8분쯤
1) ETag사용시 클라이언트가 캐시 메커니즘을 모른다고 하셨는데 그러면 Last-Modified사용시에는 클라이언트가 캐시 메커니즘을 알고있는건가요? 2) 혹시나 아는거라면 캐시 메커니즘을 안다고 하는게 정확히 무슨뜻인가요?
- 미해결모든 개발자를 위한 HTTP 웹 기본 지식
캐시 무효화 관련하여 질문이 있습니다.
안녕하세요.좋은 강의 잘 듣고 있습니다. 강의 중에 이해가 안가는 것이 있어서 질문드리고자 합니다. 캐시무효화 강의 중에 완벽한 캐시 무효화를 위해서는 Cache-Control: no-cache, no-store, must-revalidate와 같이 세가지 컨트롤 옵션을 모두 사용해주어야 한다고 하셨는데, 제 생각에는 no-store만 사용하여도 애초에 클라이언트가 캐시를 사용하지 않기 때문에 캐시를 무효화시킬 수 있을 것 같은데요. no-cache와 must-revalidate를 사용하는 것은 클라이언트가 캐시를 사용하지 않아도, 프록시 캐시가 작용할 수 있기 때문일까요?그리고, no-cache와 must-revalidate의 차이점은 이해가 가지만, 둘 다를 사용해야할 이유는 잘 모르겠습니다. 제 생각엔 서버가 origin server와의 통신이 안되는 상황에서 에러가 발생하기를 바란다면 must-revalidate를, 그렇지 않다면 no-cache를 사용하면 될 것 같은데요. 둘 다를 사용하면 오히려 클라이언트에게 혼동의 여지가 있지 않을까요?번거로우시겠지만 답변부탁드립니다. (_ _)
- 미해결모든 개발자를 위한 HTTP 웹 기본 지식
강의 내용 기록 질문
안녕하세요. 해당 강의를 수강하면서 블로그에 강의 내용 (강사님의 설명 혹은 자료 등)을 정리하고자 하는데 가능한지 궁금합니다.
- 미해결모든 개발자를 위한 HTTP 웹 기본 지식
URI 호출 관련 질문
안녕하세요, 강의를 듣는 중 URI 호출과 관련하여 궁금한 점이 생겨 질문 드립니다. 본 강의 15분경 부터 설명하시는 HTML FORM 사용 시의 URI 설계 예시에서 [회원 등록 폼]은 "/member/new"의 GET 요청이고, [회원 조회]는 "/member/{id}"의 GET 요청이라 적혀있습니다. [회원 조회] 시에 {id}부분에 어떤 식의 파라미터가 들어갈지는 모르겠으나, 만약에 회원 중 "new"라는 id를 가진 회원이 우연히 있다면 회원 조회 시나 회원 등록 폼을 조회 시에 어떤 요청을 하게 되는지 궁금합니다.
- 미해결모든 개발자를 위한 HTTP 웹 기본 지식
로그인 로그아웃에서 쿠키, 세션
항상 좋은 수업을 해주시는 영한님과 좋은 답변을 달아주시는 서포터님들에게 감사의 말씀을 전합니다. 쿠키, 세션에 관해 궁금증이 생겨 다른 분들의 질문을 읽어보고 검색도 해봤는데, 제가 이해한게 맞는지와 궁금한 점이 있어서 질문을 남기게 되었습니다!! 로그인 로직에 대해 제가 제대로 이해한게 맞나요?? 1. 로그인 1) (최초 로그인) 브라우저에서 id, password를 담아 서버에 로그인을 요청한다. 2) 서버는 id, password를 검증하여 해당 사용자에 대한 sessionId를 생성하고 서버에 저장하고 Set-Cookie:sessionId(쿠키) 로 로그인 성공 응답을 보낸다. 3) 브라우저는 브라우저의 쿠키 저장소에 sessionId(쿠키)를 저장한다. 4) 이후 매핑된 쿠키가 있는 URL로 서버에 요청을 보낼 때, 브라우저가 자동으로 쿠키 저장소에서 꺼낸 쿠키를 Cookie:sessionId(쿠키)를 함께 보낸다. 5) 서버는 sessionId의 유효성 검사를 통해 클라이언트를 식별하여 로그인 상태를 유지한다. 2. 로그아웃 사용자가 로그아웃을 하면, 브라우저의 쿠키와 서버의 세션이 모두 삭제된다고 알고 있습니다. https://www.inflearn.com/questions/495180 F12 > Application > Cookies를 살펴보니 위 글의 답변처럼 브라우저는 각 사이트에서 생성한 쿠키를 URL과 매핑하여 관리하고 있다는 것을 알게되었습니다. (실제로 google 로그인을 하면 Cookie에 SSID가 생성되었다가 로그아웃하면 자동으로 사라지는 것을 확인할 수 있었습니다.) 1) 사용자1 구글 로그인->로그아웃->사용자2 구글 로그인 을 했다고 가정합니다. 어떠한 URL(google.com)에 매핑된 쿠키 정보에 다른 유저의 SSID가 동시에 존재할 수 는 없는게 맞나요?? "위 상황에서는 같은 URL로 로그인 요청이 두번 일어났지만 사용자1은 로그아웃을 하면서 쿠키 저장소에 사용자 1의 SSID는 삭제되고 사용자 2의 SSID가 새로 저장되었기 때문에 현재 브라우저의 쿠키 저장소에 google.com과 매핑된 쿠키는 사용자2의 ssid이다" 이 해석이 맞나요?? 2) 그렇다면, 사용자가 로그아웃 요청을 서버에 보내게 되면 서버단에서 세션을 삭제하는 코드를 작성하고 프론트단에서 브라우저의 쿠키를 삭제하는 코드를 작성하는 건가요???
- 미해결모든 개발자를 위한 HTTP 웹 기본 지식
캐시 제어 헤더 no-cache, must-revalidate
캐시 제어 헤더 no-cache, must-revalidate 를 사용해야 할 때 원 서버에 대한 접근이 있는데, 프록시 서버가 필수로 존재를 해야할까요? 프록시 서버가 없어도 된다면 no-cahce 에서의 원 서버 접근이 불가할때 프록시의 데이터를 줘서 200ok 를 내리는데, 프록시 서버가 없을때 해당 처리는 504로 되는것일까요?
- 미해결모든 개발자를 위한 HTTP 웹 기본 지식
애플리케이션을 포트 번호로 구분
안녕하세요? 음악도 들으면서 게임도 하는 경우를 예시로 들으시면서 하나의 IP에 있는 애플리케이션들을 포트 번호로 구분한다고 하셨는데요 제가 스프링부트로 서버 애플리케이션을 개발해서 구동할 때는 8080 포트로 지정할 수도 있고 8081 포트로 지정할 수도 있고리액트로 웹 사이트를 개발할 때도 3000번 포트로 지정할 수도 있고 4000번 포트로 지정할 수 있는데요 그냥 자바나 파이썬이나 C++로 프로그램을 짜도 이런 프로그램에도 포트번호가 있나요? (그리고 통신 기능이 없는 프로그램에도 포트 번호가 있나요?) 만약 있다면 다른 애플리케이션이 해당 애플리케이션의 포트 번호를 모르는데 어떻게 통신을 하나요? (포트번호를 명시적으로 지정한 적이 없는데 있다면)
- 해결됨모든 개발자를 위한 HTTP 웹 기본 지식
API URL 설계
안녕하세요. API URI 설계에 대해서 궁금한점이 있습니다. 멤버 도메인과 주문 도메인이 있을 때 (JPA강의 예) 만약 해당 멤버의 주문을 검색하고자 하여 요청을 할 때 API URI는 어떻게 해야할까요? 1번. GET /members/{id}/orders 2번. GET /orders 이 둘중에서 어떤 URI로 설계해야 할지 궁금합니다. 인터넷 서칭 결과 관련있는 리소스는 1번처럼 사용한다고 나오는데 jwt를 사용할 경우 2번이 더 적합한게 아닌가라는 생각이 듭니다. 어떤 기준을 적용하여 1번과 2번 중 어떤 API URI 설계를 사용해야할 까요?
- 미해결모든 개발자를 위한 HTTP 웹 기본 지식
s-message
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]1. s-maxage가 만료된 경우 브라우저에서 첫 요청시 원서버까지 요청이 가는 것인가요 ? 2. 1번에서 첫요청이 브라우저에서있어야만 프록시 캐시 서버의 s-maxage가 설정될 수 있나요 ? (아님 프록시 서버 스스로 원서버에 요청이 되어야하는건지 헷갈려서요..) 3. s-maxage가 유효하다면 웹 브라우저는 무조건 프록시 캐시 서버까지만 요청하는 건가요 ? 4. s-maxage가 유효하지만 no-cache인 경우는 항상 원서버에 가야하는 것인가요 ?
- 미해결모든 개발자를 위한 HTTP 웹 기본 지식
last-modified가 없는 경우
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] 요청 url (참고) https://www.gstatic.com/ui/v1/menu/device_default_thumbnail2.png 질문1 304코드를 보기 위해 구글에서 요청을 해보았습니다. 근데 사진처럼 요청에는 if-modified-since가 있지만 응답에는 cache-control과 expire만 있고 강의에 나온것처럼 last-modified가 없습니다. last-modified가 없는게 정상이고, 대신 cache-control과 expire에서 브라우저가 값을 가져오는 건가요 ?? 질문2 사진에 요청에서 cache-control 의 max-age=0인데, 응답은 0이 아닌 다른 값입니다! 왜 이 두 값이 다른건가요 ?
- 미해결모든 개발자를 위한 HTTP 웹 기본 지식
멱등, 고려하지 않는다는 것의 의미가 헷갈립니다.
사용자1이 GET요청을 하고 사용자 2에 의해 리소스가 변경되면 다시 사용자 1이 GET요청을 했을때 결과가 다르니까 멱등이 아닌걸로 이해하면 될까요? 아니면 중간에 POST가 없었다면 GET요청 후 재요청했을때 값이 같을거니까 멱등하다라고 이해하면 되나요?
- 미해결모든 개발자를 위한 HTTP 웹 기본 지식
html을 반환하는 경우 분할전송이 되는게 맞나요?
@GetMapping("/simple")public String simpleTransfer() { return "transfer/simple";} html을 반환하면 브라우저에서 자동으로 분할해서 넘기는건가요?
- 미해결모든 개발자를 위한 HTTP 웹 기본 지식
로컬캐시 최신화
안녕하세요! 304 기타 리다이렉션을 사용하면 로컬캐시를 사용한다고 하셨는데 그렇다면 로컬캐시에는 최신화 된 정보를 새로 불러올 수 없고 캐시에 있는 것만 사용이 가능하니 변경되지 않는 고정의 값만 캐시에 담을 수 있는 걸로 이해해도 될까요? 감사합니다.
- 미해결모든 개발자를 위한 HTTP 웹 기본 지식
강의에서 Non으로 설명하신 이유가 따로 있을까요 ?
김영한님께서도 항상 Non으로 이해하면 헷갈린다고 말씀하셨듯이.. Non으로 굳이 설명 하신 이유가 있을까요 ? If-match , If-Modified-Since 를 사용하는게 좀 더 직관적이고 이해하기 쉬운 것 아닌가요 ?? 추가로 쿠키와 캐시의 차이가 무엇인지도 궁금합니다
- 미해결모든 개발자를 위한 HTTP 웹 기본 지식
HTML form으로는 데이터 수정 못하는건가요 ?>
GET과 POST밖에 못 쓴다고 알려주시는데 PUT이나 DELETE를 못쓰면 기존의 데이터를 수정할 수 없는 것 아닌가요?
- 미해결모든 개발자를 위한 HTTP 웹 기본 지식
질문이 있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 프록시 캐시는 cdn 을 의미하는 것인가요? 프록시 캐시는 어떻게 생성이 되는 건가요? 원서버에서 관리를 하는 것인지 아니면 public 으로 배포가 된다면 자동으로 생성이 되는 것인지 궁금합니다. 프록시 캐시 삭제 역시 누구의 권한인지도 궁금합니다ㅣ
- 미해결모든 개발자를 위한 HTTP 웹 기본 지식
압축 관련
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] gzip 을 이용해서 클라이언트에게 전송을 한다면 클라이언트는 다시 압축을 풀어야 해서 소모 데이터가 같지만, 서버 측에서는 효율적으로 할 수 있는 건가요? 서버의 데이터 효율을 위해서 압축을 하는 건가요?
- 미해결모든 개발자를 위한 HTTP 웹 기본 지식
Spring에서 Get 전송시 body추가
안녕하세요 . 강의를 들으며 Get에 Body를 기어코 한번 담아보고 싶어서 Spring에서 테스트를 하려고 하는데, Spring의 restTemplate에서는 Body 담는게 차단되어있는건지 궁금합니다.. 감사합니다!질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.