URL(Uniform Resource Locator)
- 자원이 어디 있는지를 알려주기 위한 규약
- 흔히 웹 사이트 주소로 알고 있지만, URL은 웹 사이트 주소뿐만 아니라 컴퓨터 네트워크상의 자원을 모두 나타낼 수 있음
- 그 주소에 접속하려면 해당 URL에 맞는 프로토콜을 알아야 하고, 그와 동일한 프로토콜로 접속(FTP 프로토콜인 경우에는 FTP 클라이언트를 이용해야 하고, HTTP인 경우에는 웹 브라우저를 이용해야 한다. 텔넷의 경우에는 텔넷 프로그램을 이용해서 접속)
출처 : Wiki
HTTP(Hypertext Transger Protocol)
- HTML, XML, Javascript, 오디오, 비디오, 이미지, PDF, Etc
- 요청 또는 상태 라인 / 해더(생략가능) / 빈줄(해더의 끝) / 바디(생략가능)
- HTTPS (HTTP Secure)
HTTP request ex 1
GET /stock.html HTTP/1.1 Host www.paullab.co.kr
HTTP request ex 2
GET /index.html HTTP/1.1 user-agent: MSIE 6.0; Windows NT 5.0 accept: text/html; */* cookie: name = value referer: http://www.naver.com host: www.paullab.co.kr
- 데이터 처리 방식, 기본 페이지, 프로토콜 버전.
- User-Agent: 사용자 웹 브라우저 종류 및 버전 정보.
- Accept: 웹 서버로부터 수신되는 데이터 중 웹 브라우저가 처리할 수 있는 데이터 타입을 의미.
여기서 text/html은 text, html 형태의 문서를 처리할 수 있고, /는 모든 문서를 처리할 수 있다는 의미. (이를 MIME 타입이라 부르기도 한다.)
- Cookie: HTTP 프로토콜 자체가 세션을 유지하지 않는 State-less(접속상태를 유지하지 않는) 방식이기 때문에 로그인 인증을 위한 사용자 정보를 기억하려고 만든 인위적인 값. 즉 사용자가 정상적인 로그인 인증 정보를 가지고 있다는 것을 판단하고자 사용.
- Referer: 현재 페이지 접속 전에 어느 사이트를 경유했는지 알려주는 도메인 혹은 URL 정보.
- Host: 사용자가 요청한 도메인정보.
HTTP Response ex 1
HTTP/1.1 200 OK ## 상태라인 Content-Type: application/xhtml+xml; charset=utf-8 ## 해더 ## 빈줄 <html> ## 바디 ... </html>
HTTP Response ex 2
HTTP/1.1 OK 200 Server: NCSA/1.4.2 Content-type: text/html Content-length: 107 <html> ... </html>
- 웹 프로토콜 버전 및 응답 코드 정보가 포함.
- 웹 애플리케이션 종류 및 버전 정보가 포함.
- MIME 타입 정보가 포함.
- 수신 Body 사이즈 정보가 포함.
- 사용자가 요청한 웹 페이지 정보가 포함.
HTTP 처리방식
- GET : 리소스 취득 (? 뒤에 이어붙이는 방식 - 작은 값들)
- POST : 리소스 생성 (Body에 붙이는 방식 - 상대적으로 큰 용량)
- PUT : 리소스 수정 요청
- DELETE : 리소스 삭제 요청
- HEAD : HTTP 헤더 정보만 요청, 해당 자원 존재 여부 확인 목적
- OPTIONS : 웹서버가 지원하는 메소드 종류 반환 요청
- TRACE : 요청 리소스가 수신되는 경로 확인
- CONNECT : 요청 리소스에 대해 양방향 연결 시작
상태 코드
- 200 : 서버가 요청을 제대로 처리.
- 201 : 성공적으로 요청되었으며 서버가 새 리소스를 작성.
- 202 : 서버가 요청을 접수했지만 아직 처리하지 않음.
- 301 : 요청한 페이지를 새 위치로 영구적으로 이동.
- 403 : 서버가 요청을 거부.
- 404 : 서버가 요청한 페이지를 찾을 수 없음.
- 500 : 서버에 오류가 발생하여 요청을 수행할 수 없음.
- 503 : 서버가 오버로드되었거나 유지관리를 위해 다운되었기 때문에 현재서버 사용 불가.
출처 : WIKI
- localhost와 127.0.0.1은 다릅니다. 실제 테스트에서 쿠키정보가 127.0.0.1 제대로 작동하지 않을 수도 있어요. 실습을 통해 알려드리도록 하겠습니다.
- 모두가 HTTPS를 사용하는 것은 아닙니다. HTTP를 사용하는 곳도 많은데요. 우선 ISMS 인증에 대해 살펴보고 가도록 하겠습니다.
- 여기서 HTTPS가 필수 사항이 아닌 것을 알 수 있어요. 그렇다면 HTTP를 사용하는 것과 사용하지 않는 것은 무엇이 차이가 있을까요?
- HTTPS는 신뢰할 수 있는 기관에 SSL인증서를 줍니다. 그리고 암호화를 하죠. HTTP는 일반 텍스트로, 아이디 비밀번호가 그대로 노출됩니다. 와이어샤크 같은 것으로 스니핑 기능을 사용하면 패킷 잡아 볼 수 있어요.
- 대칭키(암호문, 비밀편지)와 비대칭키(보내는 키와 해독하는 키가 다름)
- 대칭키는 키를 주는 중간에 가로챌 수 있음
- HTTPS는 비대칭키
- CA인증을 받은 곳에서 발급 가능(AWS는 URL구매 후 인증서 구매해서 바로 연결 가능)
- 개인이 인증서를 받으면 브라우저 내장 CA 리스트를 통해 확인합니다.