Client의 이전 상태를 저장하는 것을 말한다. Client의 상태를 서버가 저장하여, 정보로써 활용한다.
Client의 이전 상태를 저장하지 않는다. 웹 서버가 사용자의 작업을 저장하지 않는다.
URI는 숫자, 문자 및 기호의 짧은 문자열을 사용하여 문서를 식별하기위한 표준이다. RFC 3986-URI에 정의 되어있다. URL, URN 및 URC는 모두 URI 유형이다.
HTTP는 Hypertext Transfer Protocol의 약자이며, 웹 검색에 사용되는 통신 프로토콜 이다.
이 프로토콜은 클라이언트가 웹 서버에 HTTP 요청을 하고, 해당 서버가 브라우저에 표시되는 리소스로 응답하는 메시지 기반 모델을 사용한다.
모든 HTTP 상호 작용에는 요청과 응답을 포함한다. 본질적으로 HTTP는 Stateless이다.
Stateless는 모든 요청이 서로 분리되어 있으므로, 모든 요청이 요청을 수행하기에 충분한 정보를 자체적으로 포함해야 함을 의미한다. 즉, HTTP의 메시지 기반 모델의 각 트랜잭션은 각각 별도로 처리된다.
URL (Uniform Resource Locator)은 웹에서 리소스를 식별하는데 사용되는 웹 주소이다.
웹은 시작부터 텍스트/HTML 파일, 문서, 이미지 등을 공유하는 플랫폼이었으며, 리소스의 모음이다.
대부분의 프로토콜인 HTTP (또는 HTTPS) 외 프로토콜은 다음과 같다.
FTP (File Transfer Protocol)
네트워크를 통해 클라이언트와 서버간에 파일을 전송하는데 사용되는 표준 프로토콜
SMTP (Simple Mail Transfer Protocol)
이메일 전송 표준 프로토콜
도메인 (Domain)
리소스가있는 하나 이상의 IP 주소를 식별하는데 사용되는 이름
Path
서버의 리소스 위치를 지정
파라미터 (Parameters)
서버에서 리소스를 식별하거나 필터링하는데 사용되는 추가 데이터
HTTP 요청은 URL 주소를 동반하며, 다음과 같은 Method가 필요하다.
모든 HTTP message에는 하나 이상의 헤더와 optional한 message body가 있다. body는 요청과 함께 전송 될 데이터 또는 응답과 함께 수신된 데이터가 포함된다.
모든 HTTP 요청의 첫 부분에는 세 가지 요소가 있다.
GET /list/search_result?user=vw+king HTTP/1.1
URL에 "?"는 검색어가 포함되어 있음을 의미한다. 즉, 요청 된 리소스의 parameter 를 보낸다.
HTTP 요청에는 다음과 같이 몇 가지 참고해야 할 사항이 있다.
Referer header
요청이 시작된 URL.
User-Agent header
요청을 생성하는데 사용되는 브라우저에 대한 추가 정보.
Host header
동일 서버에서 여러 웹 페이지를 호스팅 할 때, 호스트 식별 위해 필요.
Cookie header
클라이언트에 추가적인 parameter 제출.
DNT (Do Not Track)
HTTP 요청 시, 브라우저에서 DNT를 헤더에 추가하여, 사이트로 하여금 유저가 정보를 추적 당할지에 대한 여부 확인 가능
Cache-Control
요청/응답 내 단방향성 캐싱 메커니즘을 위한 디렉티브 정의가능.
Connection : Keep-Alive
연결된 socket IN/OUT의 access가 정의된 시간 동안 연결된 상태 유지하여 비용절감을 통한 Stateless 단점 커버 가능.
HTTP 요청과 마찬가지로 HTTP 응답도 세 항목으로 구성된다.
HTTP/1.1 200 OK
HTTP 응답에도 참고해야 할 사항이 있다.
REST (Representational State Transfer)는 요청 및 응답의 현재 시스템 리소스 상태를 나타내는 아키텍처 스타일이다.
일반적인 방법
http://carapp.com/search?make=wv&model=beetle
REST:
http://carapp.com/search/vw/beetle
HTTP Header는 두 번째 줄 부터 추가되며, 콜론으로 구분 된 이름 : 값 쌍으로 정의된다. HTTP Header는 요청 또는 응답과 함께, 추가 parameter를 보내는데 사용된다.
용도에 따라 4가지로 분류된다.
모든 HTTP 응답 메시지는 요청 결과를 알려주는 HTTP 상태 코드를 첫 줄에 포함해야 한다.
(관련 문서)
HTTPS는 클라이언트와 서버간에 암호화 통신을 제공한다.
HTTPS에서 통신 프로토콜은 TLS (Transport Layer Security) 또는 SSL (Secure Sockets Layer)을 사용하여 암호화된다.
따라서 프로토콜은 종종 TLS를 통한 HTTP 또는 SSL을 통한 HTTP 라고도 한다.
TLS 및 SSL 프로토콜은 모두 비대칭 암호화 시스템을 사용한다. 비대칭 암호화 시스템은 공개 키(암호화 키)와 개인 키(복호화 키)를 사용하여 메시지를 암호화한다. 누구나 공개 키를 사용하여 메시지를 암호화 할 수 있다. 그러나 개인 키는 특정 수신자만 해독 할 수 있다.
웹 사이트에 대한 HTTPS 연결을 요청하면 웹 사이트에서 SSL 인증서를 브라우저로 보낸다. 브라우저와 웹 사이트가 통신을 시작하는 프로세스를 "SSL / TLS handshake"라고 한다. SSL / TLS handshake에는 브라우저와 웹 사이트가 서로 유효성을 검사하고 SSL / TLS 터널을 통해 통신을 시작하는 일련의 단계가 포함된다.
알다시피 HTTPS 연결 중에 신뢰할 수있는 보안 터널이 사용되면 브라우저 주소 표시 줄에 자물쇠 아이콘이 표시된다.