HTTP알아보기

Sue_·2020년 5월 21일
1

스터디(CSW)

목록 보기
3/3
post-thumbnail


http, 전공자든 비전공자든 한번쯤은 들어봤을 단어일것입니다. 이 http에 대해서 한번 알아봅시다!

HTTP란 무엇인가

HTTP는 Hyper Text Transfer Protocol 의 약자로 하이퍼텍스트를 전송하는 통신규약입니다. 하이퍼텍스트란, 우리가 웹사이트에서 링크를 통해 다른 문서에 접근해서 볼 수 있는 텍스트를 의미합니다. 따라서 이 텍스트(데이터)를 주고받을 수 있게하는 프로토콜 입니다.

이런 식으로 클라이언트가 request를 보내면 서버에서 response를 보내며 소통하는 방식입니다.

HTTP의 특징

HTTP의 특징으로는 TCP/IP 기반으로 비연결성무상태성이 있습니다.

비연결성

HTTP의 동작과정에 대해 알아볼 필요가 있습니다. 앞에 설명했듯이 클라이언트가 Request를 보내면 서버에서 response를 보내는데요 , response를 보낸 이우에 서버와 클라이언트 사이의 연결을 끊게 됩니다. 이를 비 연결성이라고 합니다.

왜 비연결성?

HTTP는 인터넷 상에 불특정 다수와 연결하는것을 대상으로 설계되었습니다

이렇게 많은 클라이언트와 계속 연결을 유지하기 위해선 비용이 많이 들겠죠? 그렇기 때문에 response를 보내면 바로 연결을 끊어버려 비용을 줄이는 방법을 선택 한 것입니다.

무상태성

무상태성은 비연결성이라는 특성이 존재하기 때문에 나온 것인데요, 연결을 끊어버리기 때문에 서버는 클라이언트의 정보를 알 수 없습니다. 만약 로그인을 해야만 이용할 수 있는 기능을 사용해야 한다면 로그인을 한 후, 기능을 사용해 response를 받고 연결이 끊어지고, 또 로그인하고...의 방법일 것입니다.

이런 웃픈 상황이 나올 수 있죠
이를 해결하기 위해 쿠키세션이 존재합니다. 쿠키와 세션은 클라이언트상의 저장소라고 볼 수 있습니다 이 저장소에 사용자 정보를 저장해서 서버에 정보를 같이 보내는방식으로 동작합니다.

Request Method

클라이언트에서 보낼 수 있는 요청의 종류입니다. 대표적으로
GET(자료 요청), POST(자료 생성 요청), PUT(자료 수정 요청), DELETE(자료 삭제 요청)이 있습니다. 이외에도 다른 request method가 있고 이곳에서 확인할 수 있습니다

Request HTTP Message

서버가 특정 동작을 취하게끔 만들기 위해 클라이언트에서 전송하는 메세지입니다.

위는 위키백과에서 가져온 예시 http message인데요 하나하나 무엇인지 알아봅시다

  • 첫째줄은 HTTP Method + 요청 타깃 + HTTP 버전으로 이루어져있는 상태를 나타내는 상태 줄 입니다
  • 둘째줄은 요청에 대한 정보를 나타내는 헤더로 User_Agent, Accept 등이 있습니다. 여러 헤더는 이곳에서 볼 수 있습니다
    -셋째줄은 사진엔 나오지 않았지만 POST같은 메서드에만 사용합니다. 요청을 할 때 함께 보낼 데이터를 담는 부분입니다.

Response HTTP Message

서버가 클라이언트에게 보내는 요청에 대한 답변입니다


이것도 위키백과에서 가져온 http message입니다.

  • 첫째줄은 HTTP Method + 상태 코드 + 상태 메세지로 이루어진 사태 줄 입니다.
    상태 코드는 200, 300 등 서버에서 요청이 성공적으로 이루어졌는지 오류가 났는지 알려주는 코드입니다
  • 둘째줄은 request http message 와 같이 요청에 대한 정보를 나타는 헤더입니다. 이곳에서 확인해 볼 수 있습니다.
  • 다음으론 요청한 데이터인 본문인데 위의 예시로는 html로 작성되어있지만 그냥 텍스트나 xml같은 다양한 형식으로 보낼 수 있습니다.

HTTPS

보통 주소창을 볼때 HTTP://... 로 시작되는 주소보다는 HTTPS://...로 시작하는 주소를 더 많이 볼 수 있을것입니다. HTTP 대신 HTTPS를 사용하는 것 인데요 이것은 기존 HTTP에 보안을 첨가한 것 이라고 할 수 있습니다.
기존 HTTP는 암호화를 하지 않았기 때문에 도청 가능하고 통신상대를 확인하지 않기 때문에 위장이 가능합니다. 이런 단점을 보안하기 위해서 SSL, TLS프로토콜을 이용해서 세션 데이터를 암호화합니다.

  • SSL: Secure Socket Layer , 넷스케이프에서 만든
    인터넷 보안 프로토콜
  • TLS: Transport Layer Security, (SSL v4)
    공유되는 비밀 및 사용될 암호화 유형을 결정하는 절차를 진행
profile
킹갓개발자가 되고싶은 애벌래개발자

0개의 댓글