728x90
반응형
HTTP(HyperText Transfer Protocol)
- 웹 서버와 클라이언트 간의 데이터 통신을 위한 프로토콜
- 데이터 전송 과정에서 암호화가 이루어지지 않기 때문에, 전송되는 데이터가 평문으로 전송
- 중간에 데이터를 가로채거나 엿볼 수 있는 보안 취약점이 존재
- PORT : 80
HTTPS(HyperText Transfer Protocol Secure)
- 보안 소켓 계층(SSL/TLS) 위에서 HTTP 통신을 하는 보안된 프로토콜
- HTTP의 보안 버전으로, SSL(Secure Socket Layer) 또는 TLS(Transport Layer Security) 프로토콜을 사용하여 데이터가 암호화되어 전송
- 중간에 데이터를 가로채도 암호화된 데이터를 해독할 수 없어서 데이터의 기밀성과 무결성을 보장
- PORT : 443
보안이 중요한 데이터 전송에서는 HTTPS를 사용하여 데이터의 기밀성과 보안을 강화하는 것이 권장
728x90
HTTPS 적용 방법
- SSL/TLS 인증서 발급
- SSL 인증서는 웹사이트의 보안을 제공하는 디지털 인증서로, 일반적으로 인증 기관(CA, Certificate Authority)에서 발급한다.
- 인증서는 웹사이트의 도메인과 서버의 공개키를 포함하며, 클라이언트와 서버 간의 통신을 암호화하는 역할을 한다.
- 웹 서버(예: Apache, Nginx 등)에서 HTTPS를 설정
- SSL 모듈 활성화: 웹 서버의 SSL 모듈을 활성화해야 합니다. 대개의 경우, 이 모듈은 기본적으로 제공되지만 구성에 따라 추가 설치가 필요할 수 있습니다.
- 인증서 설치: 획득한 SSL 인증서를 서버에 설치해야 합니다. 일반적으로는 인증서 파일(.crt, .pem 등)과 개인 키 파일(.key)이 필요합니다.
- 가상 호스트 설정: HTTPS를 사용할 도메인에 대한 가상 호스트 설정을 추가하거나 수정합니다. 가상 호스트 설정에서 SSL 인증서 파일 경로와 개인 키 파일 경로를 지정합니다.
- 포트 설정
- 리디렉션 설정
HTTPS 적용 후 고려사항
- SSL 인증서 갱신: SSL 인증서는 일정 기간마다 갱신해야 하며, 이를 잊지 않도록 자동 갱신 설정을 고려할 수 있습니다.
- 보안 강화: HTTP Strict Transport Security (HSTS) 등의 추가 보안 메커니즘을 고려하여 보안을 강화할 수 있습니다.
- 성능 고려: HTTPS는 암호화/복호화 처리가 필요하기 때문에 일반적으로 HTTP보다 더 많은 CPU 자원을 요구할 수 있습니다. 따라서 성능에 영향을 미칠 수 있는 사항을 고려하여 최적화 방법을 찾아야 합니다.
HTTP/HTTPS Methods
- HTTP 요청의 종류를 말한다.
- HTTPS는 HTTP를 기반으로 통신을 암호화하는 방식의 차이가 있으며, HTTP와 동일한 메서드을 사용한다.
GET
- 리소스(데이터)를 받기 위함
- URL(URI) 형식으로 서버 측에 리소스를 요청한다.
- 메세지 헤더 정보를 받기 위함
- GET과 유사하지만, HEAD는 실제 문서 요청이 아닌 문서에 대한 정보 요청이다. 즉, Response 메세지를 받았을 때, Body는 비어있고, Header 정보만 들어있다.
- 내용 및 파일 전송을 하기 위함
- 클라이언트에서 서버로 어떤 정보를 제출하기 위해 사용한다. Request 데이터를 HTTP Body에 담아 웹 서버로 전송한다.
- 리소스(데이터)를 갱신하기 위함
- POST와 유사하나, 기존 데이터를 갱신할 때 사용한다.
- 리소스(데이터)를 삭제하기 위함
- 실제로 클라이언트에서 서버 자원을 삭제하도록 하진 않아 비활성화로 구성한다.
- 웹 서버측에 요청한 리소스를 삭제할 때 사용한다.
- 클라이언트와 서버 사이의 중간 경유를 위함
- 보통 Proxy를 통해 SSL 통신을 하고자할 때 사용한다.
- 서버 측 제공 메소드에 대한 질의를 하기 위함
- 웹 서버 측에서 지원하고 있는 메소드가 무엇인지 알기 위해 사용한다.
- Request 리소스가 수신되는 경로를 보기 위함
- 웹 서버로부터 받은 내용을 확인하기 위해 loop-back 테스트를 할 때 사용한다.
- 리소스(데이터)의 일부분만 갱신하기 위함
- PUT과 유사하나, 모든 데이터를 갱신하는 것이 아닌 리소스의 일부분만 수정할 때 쓰인다.
HTTP 상태 코드
- 10x : 정보 확인
- 20x : 통신 성공
- 30x : 리다이렉트
- 40x : 클라이언트 오류
- 50x : 서버 오류
상태코드이름의미
200 | OK | 요청 성공(GET) |
201 | Create | 생성 성공(POST) |
202 | Accepted | 요청 접수O, 리소스 처리X |
204 | No Contents | 요청 성공O, 내용 없음 |
상태코드이름의미
300 | Multiple Choice | 요청 URI에 여러 리소스가 존재 |
301 | Move Permanently | 요청 URI가 새 위치로 옮겨감 |
304 | Not Modified | 요청 URI의 내용이 변경X |
상태코드이름의미
<tr">409Conflict모순
400 | Bad Request | API에서 정의되지 않은 요청 들어옴 |
401 | Unauthorized | 인증 오류 |
403 | Forbidden | 권한 밖의 접근 시도 |
404 | Not Found | 요청 URI에 대한 리소스 존재X |
405 | Method Not Allowed | API에서 정의되지 않은 메소드 호출 |
406 | Not Acceptable | 처리 불가 |
408 | Request Timeout | 요청 대기 시간 초과 |
429 | Too Many Request | 요청 횟수 상한 초과 |
상태코드이름의미
500 | Internal Server Error | 서버 내부 오류 |
502 | Bad Gateway | 게이트웨이 오류 |
503 | Service Unavailable | 서비스 이용 불가 |
504 | Gateway Timeout | 게이트웨이 시간 초과 |
728x90
반응형
'frontend > WEB' 카테고리의 다른 글
[WEB] 웹페이지 접근성 높히는 방법, 인클루시브 디자인(inclusive design) 이란? (0) | 2024.09.26 |
---|---|
[WEB] WEB 구성요소 / Web, WebServer, WAS 차이점 (0) | 2024.05.27 |
[WEB] 브라우저 렌더링 성능을 높히는 개발 (0) | 2024.05.24 |
[WEB] 웹 크로스 브라우징 테스트 및 구현 방법 (0) | 2024.05.24 |
[WEB] SSL인증서 TCP와 SSL/TSL (0) | 2024.05.22 |