Spring/HTTP 웹 기본 지식(8)
-
섹션 8. HTTP 헤더2 - 캐시와 조건부 요
❓ 캐시 기본 동작캐시가 없을 때데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운받아야 한다.인터넷 네트워크는 매우 느리고 비싸다브라우저 로딩 속도가 느리다.느린 사용자 경험캐시 적용캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다.비싼 네트워크 사용량을 줄일 수 있다.브라우저 로딩 속도가 매우 빠르다.캐시 시간 초과캐시 유효 시간이 초과하면, 서버를 통해 데이터를 다시 조회하고, 캐시를 갱신한다.이때 다시 네트워크 다운로드 발생 ❓ 검증 헤더와 조건부 요청1캐시 유효 시간이 초과해도, 서버의 데이터가 갱신되지 않으면304 Not Modified + 헤더 메타 정보만 응답(바디X)클라이언트는 서버가 보낸 응답 헤더 정보로 캐시의 메타 정보를 갱신클라이언트는 캐시에 저장되어 있는..
2024.07.13 -
섹션 7. HTTP 헤더1 - 일반 헤더
❓ HTTP 헤더 개요용도HTTP 전송에 필요한 모든 부가정보표준 헤더가 너무 많음필요시 임의의 헤더 추가 가능RFC723x 변화표현 = 표현 메타데이터 + 표현 데이터헤더 특징메세지 본문을 통해 표현 데이터 전달메세지 본문 = 페이로드표현은 요청이나 응답에서 전달할 실제 데이터표현 헤더는 표현 데이터를 해석할 수 있는 정보 제공 ❓ 표현Content-Type : 표현 데이터의 형식미디어 타입, 문자 인코딩예)text/html; charset=utf-8application/jsonimage/pngContent-Encoding : 표현 데이터의 압축 방식표현 데이터를 압축하기 위해 사용데이터를 전달하는 곳에서 압축 후 인코딩 헤더 추가데이터를 읽는 쪽에서 인코딩 헤더의 정보로 압축 해제예)gzipdefla..
2024.07.13 -
섹션 6. HTTP 상태코드
❓ 상태 코드클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능1xx (Informational) : 요청이 수신되어 처리중2xx (Successful) : 요청 정상 처리3xx (Redurection) : 요청을 완료하려면 추가 행동이 필요4xx (Client Error) : 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음5xx (Server Error) : 서버 오류, 서버가 정상 요청을 처리하지 못함 ❓ 2xx - 성공200 : 성공201 : 요청 성공해서 새로운 리소스가 생성생성된 리소스는 응답의 Location 헤더 필드로 식별202 : 요청 접수되었으나 처리가 완료 되지 않았음배치 처리 같은 곳에서 사용204 : 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본..
2024.07.13 -
섹션 5. HTTP 메서드 활용
❓ 클라이언트에서 서버로 데이터 전송데이터 전달 방식은 크게 2가지쿼리 파라미터를 통한 데이터 전송GET메세지 바디를 통한 데이터 전송POST, PUT, PATCH정적 데이터 조회쿼리 파라미터 미사용이미지, 정적 텍스트 문서조회는 GET 사용정적 데이터는 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능동적 데이터 조회쿼리 파라미터 사용주로 검색, 게시판 목록에서 정렬 필터조회는 GET 사용HTML Form 데이터 전송HTML Form submit 시 POST 전송Content-Type : application/x-www-form-urlencoded 사용form의 내용을 메세지 바디를 통해서 전송(key=value, 쿼리 파라미터 형식)전송 데이터를 url encoding 처리HTML Fo..
2024.07.13 -
섹션 4. HTTP 메서드
❓ HTTP API를 만들어보자회원 정보 관리 API 예시회원 목록 조회 /members회원 조회 /members/{id} 회원 등록 /members/{id} 회원 수정 /members/{id} 회원 삭제 /members/{id} ❓ HTTP 메서드 - GET, POST, PUT, PATCH, DELETEGET리소스 조회서버에 전달하고 싶은 데이터는 query(쿼리 파라미터)를 통해서 전달메세지 바디를 사용해서 전달할 수 있지만, 권장하지 않음POST요청 데이터 처리메세지 바디를 통해 서버로 요청 데이터 전달서버는 요청 데이터를 처리메세지 바디를 통해 들어온 데이터를 처리하는 모든 기능 수행주로 전달된 데이터로 신규 리소스 등록, 프로세스 처리에 사용PUT리소스를 대체리소스가 있으면 대체리소스가 없으면..
2024.07.13 -
섹션 3. HTTP 기본
❓ 모든 것이 HTTPHyperText Transfer Protocol거의 모든 것을 전송HTTP 특징클라이언트 서버 구조무상태 프로토콜, 비연결성단숨함, 확장 가능 ❓ 클라이언트 서버 구조Request Response 구조클라이언트는 서버에 요청을 보내고, 응답을 대기서버가 요청에 대한 결과를 만들어서 응답 ❓ Stateful, StatelessStateful 은 상태 유지Stateless 는 무상태상태 유지 : 중간에 다른 점원으로 바뀌면 안됨무상태 : 중간에 다른 점원으로 바뀌어도 된다.응답 서버를 쉽게 바꿀 수 있다.Stateless 실무 한계모든 것을 무상태로 설계 할 수 있는 경우도 있고 없는 경우도 많다.무상태로그인이 필요 없는 단순한 서비스 소개 화면상태 유지로그인 ❓ 비 연결성(conne..
2024.07.13