TIL66. http

Jaeyeon·2021년 3월 25일
0
post-thumbnail

세션진행: 순태님

HTTP란?

컴퓨터들끼리 html 파일을 주고받을 수 있도록 하는 소통방식 또는 약속

Hyper Text Transfer Protocol

HyperText = 문서와 문서가 링크로 연결 되어 있음을 뜻함.
Transfer = 전송하다 (html로 만든 웹페이지 문서를 보낸다.)
Protocol = 약속

http는 클라이언트와 서버를 연결하는 배달부 역할

Stateless

  • http 통신의 원칙은 stateless이다.
    클라이언트의 상태를 가지지 않는 서버 처리 방식을 말한다.
    (클라이언트가 백번 천번 정보를 입력해도 서버는 학습이 되지 않는 백지 상태이다.)
    다시 말해, 클리언트와의 첫번째 통신에서 데이터를 받았다고 해도 두번째 통신에서 이 데이터를 계승하지 않는 처리방식을 말한다.

http 메시지 구조

1. start line / status line

요청과 응답의 상태 (메소드,url,버전,상태)

2. headers

요청과 응답에 대한 추가 정보 (메타데이터)

3. body

요청과 응답의 실제 정보

Request 메시지 알아보기


< start 라인 >

POST : 일종의 메소드 메시지를 보내는 방식
/test/test : 어디에 보낼것이냐 (url)
HTTP/1.1: 버전

Response 메시지 알아보기

< status 라인 >

http/1.1 : 버전
200 : 상태코드 (200 = 성공)
ok: 상태에 대한 설명
200 ok = 잘 받았다 데이터 줄게 라는 의미

타겟은 클라이언트에게 대상이 정해져있는 것 이므로 따로 필요없음

Request 메소드

  • GET (read랑 비슷)
    데이터를 받아오기만 할 때
    웹페이지에 접속해서 필요한 데이터를 불러올 때
    body가 필요없음

  • POST (create랑 비슷)
    데이터를 생성 / 수정할 때 사용
    body에 담는 내용이 핵심!

  • DELETE
    서버에 저장된 특정 데이터를 삭제할 때
    body가 필요없음

Response 상태 코드

400번대 코드 = 서버에서 예외처리로 미리 설정 해놓는 코드
500번대 코드 = 서버 잘못 or 알수 없는 오류


++ 2021.04.02 추가

여태껏
GET = 데이터를 가져올 때
POST = 데이터를 생성하거나 수정할 때
를 의미 하는 줄 알았지만..
내가 잘못 알고 있었던 것이다.

GET과 POST는 단순 메소드일 뿐 그 메소드가 가지고있는 역할은 없는 것이다.

위스타그램을 모델링 하던 중 갑자기 의문이 들었다.
회원가입은 POST로 하는게 맞는 것 같은데
로그인은... 왜 POST인거지?
내가 알고 있는 POST = 데이터 생성 or 수정 일 뿐인데..
정말 궁금해서 순태님께 왜 로그인할 때 POST를 사용하는지 여쭤봤다.
순태님은 몇가지의 질문을 하시고 나에게 HTTP 세션자료를 다시 읽어보고 오라고 하셨다.
솔직히 지금까지 했던 세션을 어느정도 잘 이해한 후 블로깅까지 했다고 생각을 했는데 그런 소리를 들으니 자존심이 상했다.
다시 세션자료를 보니.. GET과 POST는 단순 메소드 일뿐 그 메소드에 역할은 주어지지 않았다는 내용을 보고 깨달았다.
GET은 body에 내용을 못담고
POST는 body에 내용을 담을 수 있다.
그 뜻은 로그인할 때 POST를 사용해서 클라이언트가 서버에게 아이디와 비밀번호를 전달하고 서버에서 그 아이디와 비밀번호가 기존 데이터베이스의 회원정보와 일치 하는지 판단을 하는 시스템으로 이해했다.
지금까지 틀에박혀 메소드의 기능만 외우려고 했던 나 자신이 좀 부끄러웠다.

profile
생각하는 개발자 되기

0개의 댓글