HTTP

연쇄코딩마·2020년 10월 4일
0

TIL

목록 보기
11/15

들어가기전에

  • 우리는 웹 개발자라는 목표를 향해 열심히 공부하고 있다. 단언컨데 웹 개발이라는 목적의식 없이 이 블로그를 보는 사람을 없을 것이다. 그럼 HTTP은 무엇일까? 그냥 인터넷에 접속할때 주소를 치는데 그앞에 쓰는거 일뿐일까? 우리같이 HTTP를 잘 숙지해서 좋은 개발자가 될 수 있으면 좋겠다. 또한 이 포스팅은 웹 개발을 함에 있어서 꼭 알아야될 부분만 포스팅하기로 하겠다. 깊게 들어가면 늪같이 한도 끝도 없더라.

HTTP란?

  • HTTP는 Hyper Text Transfer Protocol의 약자이다. 넷상에서 클라이언트가 서버와 데이터를 주고 받을수 있는 일종의 약속인 것이다. 보통 사람을 예를 들자면 연인사이에 규칙이 있듯이 클라이언트와 서버 사이에도 규칙이 있는 것이다. 또한 그 규칙이 어긋난다면 여자친구가 화를 엄청내듯이 서버도 그에 따른 빨간색으로 된 반응을 보낸다. 모든지 잘 배워서 운명을 거스는 일이 없도록 하자 ㅎㅎ.

네트워크탭을 볼 수 있다면 충분!


익히 알고 있는 구글을 예로 들어보겠다. HTTP의 HTT만쳐도 자동완성기능으로 검색어를 완성한다. 검색을 하면 이벤트가 발생하며 GET/비동기 방식으로 서버에서 요청받은 검색어와 매칭되는 결과를 클라이언트로 응답을 하는것이다. ajax로 구현하는 한 방법인데 방금 한 문장이 정보를 가져오고 받는 전체적인 HTTP의 흐름이다.

  • General 탭 : 제네럴 탭은 시작줄로 필요한 정보들을 한눈에 볼 수 있다. 전송되는 데이터와는 관련이 없는 헤더
  • Response Headers 탭 : 서버가 보낸 정보들을 볼수 있다. status 메세지를 어떤 걸 content-type을 어떤걸 보내서 반응이 그대로 왔는지 알수가 있다.
  • Resquest Headers 탭 : 클라이언트가 어떤 method 로 요청을 했는지, sec-fetch-mode는 cors 인지 가져오고자 하는 리소스, 또는 클라이언트 자체에 대한 자세한 정보가 포함된 헤더

개괄적으로 말하면 대략 이렇다.

요청 (Resquest)


  • 위에 이미지에 따르면 구글 서버에게 htt에 대한 정보를 달라고 요청 한것이다. 요청할땐 항상 어떤 것을 원하는지 상세하게 적혀 있어야되고 그런 정보가 담겨 있는 메세지는 HTTP 메세지라고 한다.

method : 메소드의 종류로는 GET, POST, PUT, PATCH, DELETE,OPTIONS등이 있다.

  • GET : 특정 리소스(data)의 표시를 요청한다. 오직 데이터만 요청한다.
  • POST : 특정 리소스를 제출할때 쓰인다. 자료를 제출하는 메소드라고 보면된다.
  • PUT : 서버에 문서를 쓸때 사용한다. 새로운 리소스를 정의하기 위함이다. GET과 반대다. 즉 이미 URL에 리소스가 존재 할경우 대체하여 사용한다.
  • PATCH : 특정 부분을 수정하는 데에 쓰인다. 즉 게시글 수정이나 닉네임등 부분을 수정하는데에 쓰이며 PUT과 차이가 있다고 할수있다.
  • DELETE : 리소스를 삭제한다. 친구 삭제나 프로필 사진 제거와 같은 기능에서 쓰인다.
  • OPTIONS : 통신의 옵션을 요청하는데 쓰인다. 즉 Access-Control-Allow-Origin 같은 헤더 옵션을 요청하며 메소드들을 어떤 것을 써야되는지 요청을 한다.

path : 호스트에서 제공하는 자원의 경로를 의미한다.
scheme : 사용할 프로토콜을 말하며, 리소스에 어떻게 요청, 접근할 것인지를 명시
cookie : 웹에 접속할 떄 자동적으로 만들어지는 임시파일, 그 임시 파일에는 이용자가 본 내용, 상품 내용, 신용카드 정보같은 정보를 담고 있는 일종의 정보파일

응답 (Response)

상태 코드 (status)

  • 1xx : 정보
  • 2xx : 성공
    200 : OK. 요청 성공
    201 : Created. 생성 요청 성공
    202 : Accepted. 요청 수락(처리 보장X)
    204 : 성공했으나 돌려줄게 없음
  • 3xx : 리다이렉션
    300 : Multiple choices. 여러 리소스에 대한 요청 결과 목록
    301,302,303 : Redirect. 리소스 위치가 변경된 상태
    304 : Not Modified. 리소스가 수정되지 않았음
  • 4xx : 클라이언트 오류
    400 : Bad Request. 요청 오류
    401 : Unauthorized. 권한없음
    403 : Forbidden. 요청 거부
    404 : Not Found. 리소스가 없는 상태
  • 5xx : 서버 오류
    500 : Internal Server Error. 서버가 요청을 처리 못함
    501 : Not Implemented. 서버가 지원하지 않는 요청
    503 : Service Unavailable. 과부하 등으로 당장 서비스가 불가능한 상태

출처: https://sjh836.tistory.com/81 [빨간색코딩]

Content-Type

불러올 콘텐츠 타입을 말하는 것이다.
주로
text/plain, text/html
application/xml, application/json
image/png, image/jpg
audio/mp3, video/mp4
등이 있다.

profile
只要功夫深,铁杵磨成针

0개의 댓글