HTTP 54

[HTTP] HTTP 쿠키

쿠키 Set-Cookie : 서버에서 클라이언트로 쿠키 전달 (응답) Cookie : 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청 시 서버로 전달 쿠키 미사용 처음 welcome 페이지 접근 로그인 로그인 이후 welcome 페이지 접근 Stateless HTTP는 무상태(Stateless) 프로토콜이다. 클라이언트와 서버가 요청과 응답을 주고받으면 연결이 끊어진다. 클라이언트가 다시 요청하면 서버는 이전 요청을 기억하지 못한다. 클라이언트와 서버는 서로 상태를 유지하지 않는다. https://lllskg1.tistory.com/17 [HTTP] Stateful, Stateless (상태, 무상태) (1) 무상태 프로토콜 스테이스리스 (Stateless) 서버가 클라이언트의 상태를 보존 X..

HTTP/HTTP 헤더 2023.01.21

[HTTP] HTTP 헤더 - 인증

인증 Authorization : 클라이언트 인증 정보를 서버에 전달 WWW-Authenticate : 리소스 접근 시 필요한 인증 방법 정의 Authorization 클라이언트 인증 정보를 서버에 전달 Authorization: Basic xxxxxxxxxxxxxxxx WWW-Authenticate 리소스 접근 시 필요한 인증 방법 정의 리소스 접근 시 필요한 인증 방법 정의 401 Unauthorized 응답과 함께 사용 WWW-Authenticate: Newauth realm="apps", type=1, title="Login to \"apps\"", Basic realm="simple" 출처 : https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%..

HTTP/HTTP 헤더 2023.01.21

[HTTP] HTTP 헤더 - 특별한 정보

특별한 정보 Host : 요청한 호스트 정보 (도메인) Location : 페이지 리다이렉션 Allow : 허용 가능한 HTTP 메서드 Retry-After : 유저 에이전트가 다음 요청을 하기까지 기다려야 하는 시간 Host 요청한 호스트 정보 (도메인) 요청에서 사용 필수 포함 정보 하나의 서버가 여러 도메인을 처리해야 할 때 하나의 IP 주소에 여러 도메인이 적용되어 있을 때 가상호스트를 통해 여러 도메인을 한 번에 처리할 수 있는 서버가 있다. 이때, 클라이언트가 특정 도메인에서 해당 서버의 IP로 GET 요청을 했다고 가정하자. HTTP는 IP로 통신하기 때문에 서버 측에서는 어떤 도메인에서 요청을 보냈는지 알 수가 없다. 이러한 문제를 방지하기 위해 요청 클라이언트는 HTTP 헤더에 Host(..

HTTP/HTTP 헤더 2023.01.21

[HTTP] HTTP 헤더 - 일반 정보

일반 정보 From : 유저 에이전트의 이메일 정보 Referer : 이전 웹 페이지 주소 User-Agent : 유저 에이전트 애플리케이션 정보 Server : 요청을 처리하는 오리진 서버의 소프트웨어 정보 Date : 메시지가 생성된 날짜 From 유저 에이전트의 이메일 정보 일반적으로 잘 사용되지 않음 검색 엔진 같은 곳에서 주로 사용 요청에서 사용 Referer 이전 웹 페이지 주소 현재 요청된 페이지의 이전 웹 페이지 주소 A -> B로 이동하는 경우 B를 요청할 때 Referer: A를 포함해서 요청 Referer를 사용해서 유입 경로 분석 가능 요청에서 사용 참고 : referer는 단어 referrer의 오타 User-Agent 유저 에이전트 애플리케이션 정보 user-agent: Mozi..

HTTP/HTTP 헤더 2023.01.21

[HTTP] HTTP 헤더 - 전송 방식

전송 방식 Transfer-Encoding Range, Content-Range 전송 방식 종류 단순 전송 압축 전송 분할 전송 범위 전송 단순 전송 Content-Length 단순히 메시지 바디의 길이만 포함해서 전송한다. 압축 전송 Content-Encoding Content-Type, Length 외에 Content-Encoding을 포함시켜, 압축 방식을 함께 전송한다. 분할 전송 Transfer-Encoding Transfer-Encoding을 통해 분할 전송을 하겠다고 헤더를 통해 알려준다. 몇 바이트로 분할했는지와 분할한 메시지를 순차적으로 전송한다. 더 이상 보낼 데이터가 없으면 0과 함께 \r\n을 전송한다. Transfer-Encoding을 사용할 경우, Content-Length를 포..

HTTP/HTTP 헤더 2023.01.21

[HTTP] HTTP 헤더 - 협상 (콘텐츠 네고시에이션)

협상 (콘텐츠 네고시에이션) 클라이언트가 선호하는 표현 요청 Accept : 클라이언트가 선호하는 미디어 타입 전달 Accept-Charset : 클라이언트가 선호하는 문자 인코딩 Accept-Encoding : 클라이언트가 선호하는 압축 인코딩 Accept-Language : 클라이언트가 선호하는 자연 언어 협상 헤더는 요청 시에만 사용 Accept-Language 적용 전 1. 클라이언트가 /event 페이지 접속 요청 2. /event 페이지의 default 언어인 영어(en)로 응답 Accept-Language 적용 후 1. 클라이언트가 /event 페이지에 선호하는 언어는 한국어(ko)로 요청 2. /event 페이지에서 한국어를 지원하기 때문에 한국어 페이지로 응답 Accept-Language..

HTTP/HTTP 헤더 2023.01.21

[HTTP] HTTP 헤더

HTTP 헤더 header-field = field-name ":" OWS field-value OWS (OWS:띄어쓰기 허용) field-name은 대소문자 구분 없음 용도 HTTP 전송에 필요한 모든 부가정보 예) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보... 등 표준 헤더가 너무 많음 필요시 임의의 헤더 추가 가능 HTTP BODY message body - RFC7230 (최신) 메시지 본문(message body)을 통해 표현 데이터 전달 메시지 본문 = 페이로드(payload) 표현은 요청이나 응답에서 전달할 실제 데이터 표현 헤더는 표현 데이터를 해석할 수 있는 정보 제공 데이터 유형(html, json), 데이터 길이, 압축 정..

HTTP/HTTP 헤더 2023.01.21

[HTTP] HTTP 상태코드 - 4xx, 5xx (클라이언트, 서버 오류)

4xx (Client Error) 클라이언트 오류 클라이언트의 요청에 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 오류의 원인이 클라이언트에 있음 중요! 클라이언트가 이미 잘못된 요청, 데이터를 보내고 있기 때문에 똑같은 재시도가 실패함 400 Bad Request 클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할 수 없음 요청 구문, 메시지 등 오류 클라이언트는 요청 내용을 다시 검토하고, 보내야 함 예) 요청 파라미터가 잘못되거나, API 스펙이 맞지 않을 경우 401 Unauthorized 클라이언트가 해당 리소스에 대한 인증이 필요함 인증(Authentication) 되지 않음 401 오류 발생 시 응답에 WWW-Authenticate 헤더와 함께 인증 방법을 설명 참고 인증(Authen..

[HTTP] HTTP 상태코드 - 3xx (리다이렉션) (2)

일시적인 리다이렉션 302, 307, 303 리소스의 URI가 일시적으로 변경 따라서 검색 엔진 등에서 URL을 변경하면 안 됨 302 Found 리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음 307 Temporary Redirect 302와 기능은 같음 리다이렉트시 요청 메서드와 본문 유지(요청 메서드를 변경하면 안 된다.) 303 See Other 302와 기능은 같음 리다이렉트시 요청 메서드가 GET으로 변경 PRG : Post/Redirect/Get 일시적인 리다이렉션 - 예시 POST로 주문 후에 웹 브라우저를 새로고침 하면? 새로고침은 다시 요청 중복 주문이 될 수 있다. PRG: 사용 전 1. 주문 페이지에서 mouse 1개 구입 요청 2. 주문 DB 저장 3. 정상 ..

[HTTP] HTTP 상태코드 - 3xx (리다이렉션) (1)

3xx (Redirection) 요청을 완료하기 위해 유저 에이전트의 추가 조치 필요 300 Multiple Choices 301 Moved Permanently 302 Found 303 See Other 304 Not Modified 307 Temporary Redirect 308 Permanent Redirect 리다이렉션 이해 웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면, Location 위치로 자동 이동 (리다이렉트) 1. 클라이언트가 /event 페이지 요청 2. /event는 더 이상 지원하지 않는 페이지임으로 301을 띄우고 /new-event 주소 응답 3. 클라이언트는 Location 주소를 통해 자동 리다이렉트 4. 클라이언트가 /new-event 페이지 요청 5...