IT 시사 및 CS 지식/IT 시사 및 CS 지식

[CS스터디]220623 네트워크 - 2

GAEBAL 2022. 6. 26. 01:12
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 훨씬 안전함!

출처: https://www.cloudflare.com/ko-kr/learning/ssl/why-is-http-not-secure/

HTTP는 url에서 http:// 를 사용하고

HTTPS는 url에서 https:// 를 사용함

 

 

 

HTTPS의 SSL Handshake에 대해서 설명해보세요.

송신자와 수신자가 암호화된 데이터를 교환하기 위한 일련의 협상과정!

 

HTTPS가 TCP 기반의 프로토콜이기 때문에 TCP의 3-way handshake로 연결을 생성한 후에 암호화 협상(SSL Handshake)을 진행함!

 

https://aws-hyoh.tistory.com/entry/HTTPS-%ED%86%B5%EC%8B%A0%EA%B3%BC%EC%A0%95-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-3SSL-Handshake

 

HTTPS 통신과정 쉽게 이해하기 #3(SSL Handshake, 협상)

고대 그리스에서는 타인에게 노출되어서는 안 될 중요한 정보를 보낼 때, 전달하는 이(사자)의 머리를 빡빡 깎아서 중요한 정보를 적은 후 머리가 자라서 글이 보이지 않으면 그제야 상대방에게

aws-hyoh.tistory.com

자세한 과정

 

 

 

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