본문 바로가기

HTTP5

(191222) Headers HTTP 메시지는 시작줄, 헤더, 본문으로 구성되어있다. 이번엔 이중에 헤더에 대해서 알아보려 한다. 헤더의 종류는 무수히 많기 때문에 먼저 요청과 응답에서 공통으로 사용하는 헤더부터 알아보았다. (제로초님 블로그를 참조하였다) 공통 헤더 요청과 응답에 모두 사용되는 헤더이다. Date HTTP 메시지가 만들어진 시각이다. (자동으로 만들어짐) Connection 기본적으로 keep-alive로 되어있음 (HTTP/2에서는 사라졌다고한다) Content-Length 요청과 응답 메시지의 본문 크기를 바이트 단위로 표시. 메시지 크기에 따라 자동으로 만들어진다. Content-Type 컨텐츠의 타입과 문자열 인코딩을 명시할 수 있다. Content-Language 사용자의 언어를 뜻한다. Content-E.. 2019. 12. 22.
(191215) CORS CORS는 Cross-Origin Resource Sharing의 약자로 추가 HTTP 헤더를 사용하여 브라우저의 현재 웹페이지가 이 페이지를 받은 서버가 아닌 다른 서버의 자원을 호출할 수 있도록 액세스 권한을 부여하는 메커니즘이다. HTTP는 기본적으로 Cross-Site HTTP Request가 가능하다. img 태그나 link 태그로 이미지를 가져온다던지 하는 것이 그 예이다. 하지만 누군가가 이를 악의적인 목적으로 사용할 경우 (ex. XSS) 문제가 발생할 수 있다. 그래서 웹 브라우저는 보안상의 문제로 기본적으로 특정도메인에서 다른 도메인으로 접근하는 Cross-Site HTTP Request를 제한하고 자신과 동일한 도메인으로만 HTTP 요청을 보내도록 제한했는데 이것을 Same Origi.. 2019. 12. 15.
(191215) AJAX AJAX가 등장하기 전 AJAX가 등장하기 전에는 웹 브라우저가 서버에 데이터를 요청하면 서버는 해당 정보를 통째로 보내주었다. 그리고 그럴때 마다 페이지 전체가 다시 리로드 되야했다. 이럴 경우에는 클라이언트와 서버 모두 많은 자원과 시간이 낭비된다. 그래서 비동기적으로 데이터를 요청하는 기술이 생겨났다. 페이지를 렌더링하고나서 특정부분만 데이터를 받아 변경할 수 있으면 서버에서는 필요한 데이터만 줄 수 있고, 클라이언트는 적은 부분만 렌더링하면 되기 때문에 자원과 시간이 모두 절약된다. 이러한 관점에서 AJAX가 나오게 되었다. AJAX란? AJAX는 Asynchronous Javascript And Xml(비동기식 자바스크립트와 xml)의 약자로 자바스크립트 라이브러리 중 하나이다. XML은 eXt.. 2019. 12. 15.
(191208) HTTP Method, Status code HTTP Method HTTP method에는 다양한 method가 있지만 자주 사용하는 (또는 앞으로 자주 사용하게 될) method 위주로 알아 보았다. GET 서버에 자원을 요청 DELETE 서버에 자원을 제거 GET과 DELETE 요청 시에는 본문을 같이 보내지 않는다. (본문을 넣어 보낼 수 있지만 본문을 어떻게 처리해야한다는 정의가 없기 때문에, 서버가 본문을 무시하는 것이 권장됨) GET 요청시에는 본문을 담아 보내지는 않지만 요청을 위한 데이터는 담아 보낼 수 있다. GET 요청 시에 주소에 query string으로 (주소 뒤에 ?와 필요한 요청에 대한 query를 넣어서) 데이터를 요청 할 수 있다. POST 서버에 자원을 생성 PUT 서버의 자원을 수정 (전체 수정) PATCH 서버의.. 2019. 12. 8.
(191208) HTTP HTTP (Hyper-Text Transfer Protocol) 하이퍼텍스트 문서를 교환하기 위하여 사용된 통신 규약이다. 즉, 웹 서버와 클라이언트가 통신을 하기 위하여 사용하는 통신 규약이다. HTTP는 웹에서만 사용하는 프로토콜로 TCP/IP 기반으로 한 지점에서 다른 지점으로 요청과 응답을 전송한다. (TCP/IP는 다음에 알아 볼 것!!) HTTP의 특징 - HTTP 메시지는 HTTP 서버와 HTTP 클라이언트에 의해서 해석이 된다. - TCP/IP를 이용하는 응용 포로토콜이다. - Stateless : HTTP의 각 요청은 모두 독립적이다. - Connectionless : 한번의 요청에 한번의 응답을 한다. HTTP 통신은 요청과 응답으로 이루어진다. (request / response) 클.. 2019. 12. 8.