본문 바로가기
개인공부/TIL

HTTP

by 뭉지야 2023. 2. 1.
728x90

전반적인 HTTP의 흐름에 대해서 정리해볼거다

 

#클라이언트와 서버는 HTTP를 이용해 대화를 나눈다.

 

#브라우저의 주소창에 입력한 URL은 서버가 제공되는 환경에 존재하는 파일의 위치를 나타낸다

URL은 sheme, hosts, URL-path로 구분된다.

file://127.0.0.1/Users/username/Desktop/ 있다고 하자

scheme은 file:// 

hosts는 127.0.0.1

Url-path는 /Users/username/Desktop/ 이다

 

scheme:통신방식(프로토콜)을 결정한다

hosts: 웹서버의 이름이나 도메인, IP를 사용하며 주소를 나타낸다.

URL-path: 웹서버에서 지정한 루트 디렉토리부터 시작하여 웹페이지, 이미지, 동영상 등이 위치한 경로와 파일명을 나타낸다.

 

#URI

http://www.google.com:80/search?q=JavaScript 

sheme: http://

hosts: www.google.com:80

url-path: /search

query: ?q=JavaScript

 

query는 웹서버에 보내는 추가 질문이다.(가장많이쓰는거 paging)

*paging: ?page=1&per_page=30

*filtering: ?status=open

*sorting: ?direction=desc(역순)

*searching: ?q=javascript

 

URI는 URL을 포함하는 상위개념이다. 

 

#IP주소: 특정 PC의 주소

Port: IP주소에 진입하는 통로(채널) (22,80,443기억하기)

 

#클라이언트가 HTTP message양식에 맞춰 request하면 서버도 response한다.

HTTP message request => start line + headers + body

HTTP message response => status line + headers + body

 

#웹어플리케이션에서는 HTTP메서드(get, post, delete, put, patch)를 이용해 서버와 통신한다.

클라이언트와 서버사이에 오가는건 데이터, 리소스(자원)이다.

REST API: HTTP프로토콜을 통해 요청과응답을 정의하는방식

REST API는 HTTP API로 표현한다.

 

#REST 성숙도 모델 -0단계

-단순히 HTTP프로토콜을 사용하기만 

-REST API를 작성하기 위한 기본단계.

 

#REST 성숙도 모델 -1단계

-모든 자원은 개별 리소스에 맞는 엔드포인트를 사용해야 하며 

요청하고 받는 자원에 대한 정보를 응답으로 전달해야한다

-요청하는 리소스가 무엇인지에 따라 각기 다른 엔드포인트로 구분하여 사용!!!

-엔드포인트는 명사형태의 단어!

-응답시 리소스 사용에 대한 성공/실패 여부를 반환해야한다.

 

#REST 성숙도 모델 -2단계

-CRUD에 맞게 적절한 HTTP메서드를 사용해라

create(추가) - post: 새로운 리소스를 생성.

read(조회)-get :서버의 데이터를 변화시키지 않는 요청에 사용해야함.(멱등성있다)

update(갱신)-put : 요청마다 같은 리소스를 반환. 교체의 용도.(전체수정)(멱등성이있다)

                     -patch: 수정의 용도(일부분수정)(멱등성이없다)

delete(삭제)-delete


#HTTP요청을 테스트할수있는 API테스트 도구 중 하나가 postman이다.


#전체 유저정보를 조회

get /users

성공 200 실패 400,404

 

#개별 유저정보를 조회

get /users/kimcoding

성공 200 실패 400,404

 

#개별 유저정보 추가

post /users

성공: 201 실패400,409

 

#개별유저정보 갱신

put, patch /users/kimcoding

patch 성공200 204 실패400,404
put 성공201실패400,404

 

#개별 유저정보 삭제

delete /users/1

성공204 200 실패400,404

728x90

'개인공부 > TIL' 카테고리의 다른 글

[에러] useNavigate() may be used only in the context of a <Router> component.  (0) 2023.08.06
2월9일  (0) 2023.02.10
1월20일 TIL  (0) 2023.01.21