본문 바로가기

HTTP

(7)
엉터리 정리 - CORS 인터넷을 돌아다니며 공부한 내용입니다. 틀린 내용이 있을 수 있으니, 혹시 있다면 댓글 부탁드립니다. 출처는 글 하단에 있습니다. 최근 cors를 접하게 된 기회가 생겼는데, 개인적으로는 "서버가 헤더에 요청할 수 있는 도메인을 추가해서 응답해주는 거" 정도로 알고 있었다. 왜 있는지도 몰랐다. 그런데 공부하다 보면서 생각보다 중요한 정책임을 알았다. 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제입니다. 웹 애플리케이션은 리소스가 자신의 출처(도메인, 프로토콜, 포트)와 다를 때 교차 출처 HTTP 요청..
HTTP 웹 기본 지식(7) - 일반 헤더(1) HTTP 헤더 개요 헤더의 구성 header-field = field-name ":" OWS field-value OWS (OWS:띄어쓰기 허용한다는 뜻.)(field_name에는 대소문자 구분이 없다.) HTTP 전송에 필요한 모든 부가정보를 담고 있다. 메시지 바디의 내용, 크기, 압축, 서버 정보 등등 필요시임의의 헤더를 추가할 수도 있다. 헤더 또한 HTTP가 발전하면서 그 내용도 조금씩 달라졌다. 과거의 HTTP 헤더 구성(RFC2616) General 헤더: 메시지 전체에 적용되는 정보 Request 헤더: 요청 정보 Response 헤더: 응답 정보 Entity 헤더: "엔티티" 바디의 정보를 담고 있다. Entity는 HTTP 바디에 담기는 실제 데이터를 의미한다.(https://www.w..
HTTP 웹 기본 지식(6) - HTTP 상태 코드 이 글은 인프런 김영한 님의 강의 모든 개발자를 위한 HTTP 웹 기본 지식을 듣고 정리하는 글입니다. HTTP 상태 코드 : 클라이언트가 보낸 요청의 처리 상태를 응답에서 코드를 통해 알려주는 기능이다. 100번대(Informational) : 요청이 수신되어 처리중이라는 뜻인데 거의 사용하지 않는다. 200번대(Successful) : 요청이 정상적으로 처리된 경우. 300번대(Redirection) : 요청을 완료하려면 추가 행동(Redirect)이 필요할 때 오는 응답이다. 400번대(Client Error) : 클라이언트 오류. 잘못된 문법 등으로 서버가 요청을 수행할 수 없는 경우. 500번대(Server Error) : 서버 오류. 서버가 정상 요청을 처리하지 못하는 경우. 만약 모르는 상태..
HTTP 웹 기본 지식(4) - HTTP 메서드 이 글은 인프런 김영한 님의 강의 모든 개발자를 위한 HTTP 웹 기본 지식을 듣고 정리하는 글입니다. HTTP API를 설계할 때는 리소스를 중심으로 URI를 설계해야 한다. 예를 들어 회원 관리 API를 설계한다고 했을 때, 리소스는 회원이 되고, 그에 대한 행위는 조회, 등록, 삭제, 수정 등이 된다. 그럼 행위는 어떻게 구분하는가? HTTP 메서드를 통해 구분할 수 있다. 그래서 URI는 리소스만 식별하면 된다. 리소스를 중심으로 회원 조회 URI를 설계했다면 get 요청으로 /members/{id} 정도가 될 수 있지만, 그렇지 않으면 /read-members-by-id/{id} 등이 될 것이다. HTTP 메서드를 알아보자. GET: 리소스 조회 POST: 요청 데이터 처리. 주로 등록에 사용...
HTTP 웹 기본 지식(3) - HTTP 기본 이 글은 인프런 김영한 님의 강의 모든 개발자를 위한 HTTP 웹 기본 지식을 듣고 정리하는 글입니다. 모든 것이 http HTTP - HyperText Transfer Protocol 본래는 HyperText를 전송하는 프로토콜 요새는 html, text, image, json, 거의 모든 형태의 데이터 전송이 가능하다 서버 간에 데이터를 주고 받을 때도 대부분 HTTP 사용. Http의 역사 초반에는 get메서드만 지원하고 헤더도 없었다. 현재 가장 많이 사용하는 버전은 HTTP/1.1(1997)이다. 1.1 내 개선 버전으로 RFC2068 (1997) -> RFC2616 (1999) -> RFC7230~7235 (2014)가 있다. Http의 기반 프로토콜 HTTP/1.1, HTTP/2 - TCP ..
고민과 해결 - spring boot, mustache 폼 태그에서 어떻게 put, delete 전송을 할 수 있을까? html에서는 get, post 전송만 된다고 한다. 실제로 mustache 파일에서 메소드를 put으로 설정하여, @PutMapping이 붙은 컨트롤러 메소드에게 요청을 보냈는데 에러가 났다. 찾아보니, 내가 자바스크립트를 사용하지 않고도, 수정 가능해 보이는 방법이 있었다. REST PUT, DELETE 사용하기 REST PUT, DELETE를 사용하기 위해 GET, POST와는 달리 다소 노력이 필요하다. HTML form 태그의 method 속성으로 GET, POST만을 지원하기 때문에 PUT, DELETE로 설정하면 엉뚱하게도 GET 요청으로 전송된다. Ajax.. devday.tistory.com 먼저 위 방법을 사용하기 위해 application.properties에 항목을 추가한다. spr..
엉터리 정리 - 깃, http, MIME 정리는 하고 싶은데 제대로 공부한 건 아니고,(귀찮아서는 그런건 아니다.) 이런저런 이유로 까먹지만 않을 정도로 정리하는 엉터리 정리글. 그렇다고 내가 공부한 소스가 엉터리라는 건 아니다.(오해X) Git. 깃으로 프로젝트를 관리할 수 있다. 깃을 추상화해서 생각하자. 깃은 작업 영역, 인덱스 영역, 헤드 영역이 있다. 깃은 이 세 공간에 파일을 저장하고 동기화 등의 기능들을 통해 버전을 형상을 관리한다. 작업 영역은 일반 작업 폴더와 같다. 작업된 파일이 이곳에 저장된다. 작업된 파일을 인덱스 영역에 옮긴다.(add) 인덱스 영역에 파일을 헤더(트리) 영역에 옮겨 영구히 저장한다.(commit) 헤더 영역에선 커서를 통해 과거의 프로젝트 버전으로 다운시킬 수 있다. 이런 과정을 통해 동기화를 하고, 버..