프로그래밍/HTTP 10

GET과 POST 비교

GET 요청하는 데이터가 HTTP Request Message 안에 Header의 Path에 담겨서 전송된다.(쿼리 파라미터, 쿼리스트링) url에 담기기 때문에 데이터의 크기가 제한적이고, 보안이 필요한 데이터가 url에 노출되므로 비밀번호를 전송할 때는 적절하지 않다. 보통 GET 방식은 조회나 검색할 때 사용한다. 멱등(Idempotent)이다. 즉, 똑같은 요청을 해도 안전하다. POST 요청하는 데이터가 HTTP Request Message 안에 Body 부분에 담겨서 전송된다. (보안면에서는 GET 방식보다 낫지만 암호화하지 않는 이상 크게 차이는 나지 않는다) POST는 서버의 값이나 상태 변경, 추가하기 위해서 사용된다. 멱등이 아니다. 즉, 똑같은 요청을 보내면 안된다. 부수적인 차이점으..

HTTP 헤더2

모든 개발자를 위한 HTTP 웹 기본 지식 강의를 듣고 간단하게 정리한 내용 및 추가로 알게 된 내용입니다. 캐시 캐시들은 일반적으로 GET에 대한 응답만을 캐싱한다 캐시가 없으면 데이터가 변경되지 않아도 네트워크를 통해 데이터를 다운받아야 한다. 비싼 네트워크 사용량을 줄일 수 있다. 로딩 속도가 빨라진다. 캐시 시간 초과 캐시 유효시간이 초과하면, 서버를 통해서 캐시를 갱신한다. 검증 헤더 추가 기존 데이터가 변경되거나 변경되지 않을 수 있음. 변경되면 캐시를 갱신해야하지만 변경되지 않으면 기존 캐시를 재사용하는게 이득임. 따라서 검증 헤더를 추가해 준다. 요청 할 때 최종 수정한 시간을 보내서, 서버에서 최종 수정 시간을 체크하여 차이가 있으면 데이터를 보내고 차이가 없으면 304 Not Modif..

HTTP 헤더 1

모든 개발자를 위한 HTTP 웹 기본 지식 강의를 듣고 간단하게 정리한 내용 및 추가로 알게 된 내용입니다. 헤더 용도 HTTP 전송에 필요한 모든 부가정보 - 메시지 바디 내용, 크기, 압축 등등 표현(Representation) Representation = Representation Metadata + Representation Data 표현 = 표현 메타데이터 + 표현 데이터 표현은 요청이나 응답에서 전달할 실제 데이터 표현 헤더는 표현 데이터를 해설할 수 있는 정보 제공 HTTP BODY 메시지 본문(message body)을 통해 표현 데이터 전달 메시지 본문 = 페이로드(payload) 페이로드 - 사용에 있어서 전송되는 데이터를 뜻한다. 페이로드는 전송의 근본적인 목적이 되는 데이터의 일부..

PRG POST/Redirect/GET

PRG - POST/Redirect/GET 웹 디자인 패턴 중 하나로 POST 요청에 대한 응답을 리다이렉트를 통해 GET 요청을 하게 하는 것이다. 문제점 아래 그림과 같이 POST 요청이 성공적으로 되었지만 새로고침 등으로 다시 POST 요청이 보내지게 된다. 해결 POST 요청에 대한 응답을 리다이렉트 후 GET 요청으로 바꾸게 되면 새로고침 등으로 인한 POST 요청의 중복을 방지할 수 있다. 참고 https://en.wikipedia.org/wiki/Post/Redirect/Get

HTTP 상태 코드

모든 개발자를 위한 HTTP 웹 기본 지식 강의를 듣고 간단하게 정리한 내용 및 추가로 알게 된 내용입니다. HTTP 상태 코드 1xx (Informational) 요청이 수신되어 처리중 - 거의 사용하지 않는다 2xx (Successful) 요청 정상 처리 200 OK 요청 성공 201 Created 요청 성공 - 새로운 리소스 생성 202 Accepted 요청이 접수되었으나 처리가 완료되지 않았음 - 배치같은 작업 204 No Content 요청 성공 - 보낼 데이터 없음 3xx (Redirection) 요청을 완료하기 위해 추가 조치 필요 리다이렉션 웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면, Location 위치로 자동 이동 영구 리다이렉션 리소스의 URI가 영구적으로 이동..

HTTP 메서드 활용

모든 개발자를 위한 HTTP 웹 기본 지식 강의를 듣고 간단하게 정리한 내용 및 추가로 알게 된 내용입니다. GET 쿼리 파라미터를 이용해서 데이터를 전송 주로 검색, 조회에 활용 POST, PUT, PATCH 메시지 바디를 통해서 데이터 전송 가입, 주문 등등 데이터 조회 정적 데이터 GET을 사용 동적 데이터 쿼리 파라미터를 사용 검색이나 목록 필터에 사용 GET을 사용 데이터 전송 HTML Form POST를 사용 Content-Type: multipart/form-data : 파일 업로드 같은 바이너리 데이터 전송시 사용 HTTP API 서버 to 서버, 앱 클라이언트, 웹 클라이언트 등등 POST, PUT, PATCH : 메시지 바디를 통해 데이터 전송 GET : 쿼리 파라미터로 데이터 전달 주..

HTTP 메서드

모든 개발자를 위한 HTTP 웹 기본 지식 강의를 듣고 간단하게 정리한 내용 및 추가로 알게 된 내용입니다. 주요 메서드 GET 리소스 조회 데이터를 쿼리 파라미터나 쿼리 스트링을 통해 전달 멱등(Idempotent) 메서드이다 안전함 캐시 가능 POST 요청 데이터 처리, 주로 등록에 사용 메시지 바디를 통해 데이터 전달 PUT 리소스를 대체, 해당 리소스가 없으면 생성 - 파일을 폴더에 넣는거랑 비슷 클라이언트가 리소스의 위치를 알고 있어야 한다 멱등(Idempotent) 메서드이다 PATCH 리소스 부분 변경 클라이언트가 리소스의 위치를 알고 있어야 한다 DELETE 리소스 삭제 멱등(Idempotent) 메서드이다 클라이언트가 리소스의 위치를 알고 있어야 한다 멱등(Idempotent) 메서드 몇..

HTTP 기본

모든 개발자를 위한 HTTP 웹 기본 지식 강의를 듣고 간단하게 정리한 내용 및 추가로 알게 된 내용입니다. HTTP(HyperText Transfer Protocol) HTTP 메시지에는 HTML, TEXT, 이미지, 음성, 영상, 파일 , JSON, XML 등 거의 모든 형태의 데이터 전송이 가능하다. 특징 클라이언트 서버 구조 - 클라이언트는 서버에 요청을 보내고, 서버는 요청에 대한 결과를 응답 무상태 프로토콜(Stateless) - 서버가 클라이언트의 상태를 보존하지 않는다 - 스케일 아웃이 가능하다 - 아무 서버나 호출해도 된다 비 연결성 - 클라이언트랑 요청 응답이 끝나면 연결을 끊는다 - 최소한의 자원 사용 - TCP/IP 연결을 새로 맺어야 하는 단점이 있음 HTTP 메시지 구조 star..

URI와 URL, URN

모든 개발자를 위한 HTTP 웹 기본 지식 강의를 듣고 간단하게 정리한 내용 및 추가로 알게 된 내용입니다. URI, URL, URN URI(Uniform Resource Identifier) - 리소스를 식별 - 인터넷에 있는 자원을 나타내는 유일한 주소 - scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment] URL(Uniform Resource Locator) - 리소스의 위치 - 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약 - scheme://:@:/ URN(Uniform Resource Name) - 리소스의 이름 - URI를 위한 역사적인 이름 - ::= "urn:" ":" URI가 가장 상위 개념이다 https:/..

인터넷 프로토콜 4계층 / IP (인터넷 프로토콜) / TCP (전송 제어 프로토콜) / UDP (사용자 데이터그램 프로토콜)

모든 개발자를 위한 HTTP 웹 기본 지식 강의를 듣고 간단하게 정리한 내용 및 추가로 알게 된 내용입니다. 인터넷 프로토콜 4계층 응용(어플리케이션) 계층 - HTTP, Telnet, SSH, FTP 등등 전송 계층 - TCP, UDP 인터넷 계층 - IP 네트워크 인터페이스 계층 IP(인터넷 프로토콜) IP 주소에 패킷이라는 통신 단위로 데이터를 전달한다 IP 패킷에는 출발지 IP, 목적지 IP, 기타로 구성되어 있다 한계점으로는 1. 비연결성 - 받는 서버의 상태를 확인하지 않고 보냄 2. 비신뢰성 - 패킷이 손실되거나 요청이 순서대로 오지 않을 수 있음 TCP (전송 제어 프로토콜) TCP 세그먼트 - 출발지 포트, 목적지 포트, 전송제어, 순서, 검증정보 등등 특징 - 연결 지향 - TCP 3 ..