728x90
HTTP와 HTTPS의 차이점에 대해서 설명해보세요.
HTTP(Hypertext Transfer Protocol)
네트워크를 통해서 데이터를 전송하는데에 사용하는 protocol이다.
인터넷의 거의 대부분의 정보(웹 컨텐츠나 API 등)들은 이 HTTP를 사용한다.
HTTP messages 에는 2 종류가 있다 -> request(요청)과 response(응답)
HTTP requests all go to either an origin server or a proxy caching server, and that server will generate an HTTP response. HTTP responses are answers to HTTP requests.
HTTP는 layer 7 protocol이다!
HTTPS
HTTPS는 TLS(or SSL)을 사용해서 HTTP requests와 responses를 암호화함!
예를 들어서 외부에서는
GET /hello.txt HTTP/1.1
User-Agent: curl/7.63.0 libcurl/7.63.0 OpenSSL/1.1.l zlib/1.2.11
Host: www.example.com
Accept-Language: en
이거(HTTP 사용시) 대신에
t8Fw6T8UV81pQfyhDkhebbz7+oiwldr1j2gHBB3L3RFTRsQCpaSnSBZ78Vme+DpDVJPvZdZUZHpzbbcqmSW1+3xXGsERHg9YDmpYk0VVDiRvw1H5miNieJeJ/FNUjgH0BmVRWII6+T4MnDwmCMZUI/orxP3HGwYCSIvyzS3MpmmSe4iaWKCOHQ==
이게 보이게 됨!
차이점
HTTPS는 HTTP에 암호화를 한 것이다.
둘의 유일한 차이점은 HTTPS는 일반 HTTP의 requests와 responses를 암호화하기 위해 TLS(or SSL)를 사용한다는 것이다!
결과적으로 HTTPS는 HTTP 훨씬 안전함!
HTTP는 url에서 http:// 를 사용하고
HTTPS는 url에서 https:// 를 사용함
HTTPS의 SSL Handshake에 대해서 설명해보세요.
송신자와 수신자가 암호화된 데이터를 교환하기 위한 일련의 협상과정!
HTTPS가 TCP 기반의 프로토콜이기 때문에 TCP의 3-way handshake로 연결을 생성한 후에 암호화 협상(SSL Handshake)을 진행함!
자세한 과정
GET과 POST의 차이점에 대해서 설명해보세요.
GET과 POST는 HTTP requests(요청) 중 두가지 타입이다.
GET
- GET method는 클라이언트에서 서버로 어떠한 리소스로 부터 정보를 요청하기 위해 사용되는 메서드.
- 읽거나(Read) 검색(Retrieve)할 때 사용!
- URL 주소 끝에 파라미터로 포함되어 전송됨(쿼리 스트링(Query String))
- 데이터를 읽을 때만 사용, 수정할 때는 사용 X
- 데이터의 변형의 위험없이 사용 가능
https://news.naver.com/main/main.naver?mode=LSD&mid=shm&sid1=101
만약 요청 파라미터가 여러 개이면 &로 연결함!
POST
- POSTmethod는 리소스를 생성/업데이트하기 위해 서버에 데이터를 보내는 데 사용
- GET과 다르게 데이터를 HTTP 메세지의 Body에 담아서 전송함
- Body의 타입은 요청 헤더의 Content-Type에 요청 데이터의 타입을 표시
- Body는 길이의 제한 없이 데이터를 전송할 수 있음 -> POST는 대용량 데이터 전송 가능
- POST는 데이터가 Body로 전송되기 때문에 그 내용이 눈에 보이지 않아 GET보다 보안을 생각한 방법이지만, 민감한 데이터는 반드시 암호화 해야함!!
GET | POST | |
캐시 | ⭕️ | ❌ |
브라우저 기록 | ⭕️ | ❌ |
북마크 추가 | ⭕️ | ❌ |
데이터 길이 제한 | ⭕️ | ❌ |
HTTP 응답 코드 | 200(Ok) | 201(Created) |
언제 주로 사용하는가? | 리소스 요청 | 리소스 생성 |
리소스 전달 방식 | 쿼리스트링 | HTTP Body |
idempotent | ⭕️ | ❌ |
HTTP 메서드와 이것이 하는 역할에 대해서 설명해보세요.
- GET : 리소스 조회 - R
- POST : 요청 데이터 처리, 주로 데이터 등록에 사용 - C
- PUT : 리소스를 대체, 해당 리소스가 없으면 생성 - U
- PATCH : 리소스를 일부만 변경
- DELETE : 리소스 삭제 - D
728x90