네트워크는 컴퓨터와 컴퓨터간의 연결을 의미한다.
네트워크에서 정보를 요구하고 받는 쪽은 클라이언트(Client) / 정보를 제공해 주는 쪽은 서버 (Server) 라고한다.
실제로 브라우저에 접속하면 웹 서버에서 웹을 다운받고, 보는 이미지들은 파일 서버에서 다운받은 결과물이다.
또한, 웹에 로그인하는 과정은 인증서버와 통신을 하고, 상품들 정보를 확인하는 것은 상품 정보를 제공하는 API 서버와 통신을 한 것이다.
컴퓨터끼리 통신을 할 때 여러가지 방식으로 통신이 가능한데 이런 방식들을 통신 프로토콜 이라고 한다.
- SMTP 프로토콜 : 메일을 주고 받을 때 사용
- FTP 프로토콜 : 파일을 전송할 때 사용
HTTP 통신: HTTP 프로토콜을 활용한 통신
- Start
- HTTP Method: 해당 요청이 의도한 액션을 정의하는 부분, GET, POST, DELETE
- Request target: 해당 request가 전송되는 목표 URL
- HTTP Version: 말 그대로 사용되는 HTTP 버전 *주로 1.1버전에 널리 쓰임
GET / login HTTP / 1.1 = GET 메소드로 login 이라는 요청 타겟에 HTTP 1.1 버전으로 요청하겠다!
- Hearders: 요청에 대한 추가 정보를 담고있다.
Key: Value 값
Headers :
Host: 요청을 보내는 목표의 주소 (웹 사이트의 기본주소)
User-Agent: 클라이언트에 대한 정보(ex:safari)
Content-Type: 요청이 보내는 메시지 Body 타입
Content-Length: Body 내용의 길이
Authorization: 회원의 인증/인가 처리하기 위해 로그인 토큰을 Authorization에 담는다.
Body :해당 요청의 실제 내용. POST 메소드가 주로 Body 사용
ex) 로그인 시에 서버에 보낼 요청의 내용
이름 그대로 '상태없음'
매 통신마다 필요한 모든 정보를 담아서 요청을 보내야 한다.
클라이언트가 서버에게 HTTP 요청을 할 때, URL 주소와 함께 HTTP Method를 정의해야 한다.GET, POST, PUT,DELETE 등 많은 method가 있다.
같은 URL 주소로 서버에게 요청하더라도 method가 다르면 다른 요청으로 간주한다!
- GET
일반적으로 정보를 받을 때 사용하는 Method이다. 만약 method를 설정하지 않는다면 GET이 기본 method로 들어간다. 우리가 주로 사용하는 웹 서버에서 웹을 다운받을 때도 GET이 사용된다. 데이터를 받아오기만 할 때 사용된다!
-> 웹 서버에서 접속해서 웹을 다운받을 때
-> 웹 서버에서 접속해서 상품 정보들을 받아올 때
- POST
POST는 새로운 자원을 생성할 때 사용하는 Method이다.
-> 웹 서버에서 접속해서 아이디, 패스워드를 입력하고 로그인 할 때
-> 데이터를 생성 / 수정 할 때 사용
- Delete
특정 데이터를 서버에서 삭제 요청 할 때 사용하는 Method이다.
- 응답의 상태를 나타내는 Status Code가 있어야 한다.
- 요청 결과를 Body에 담아야 한다.
200 : OK -> 정상적으로 응답했을 때
400 : Bad Request -> 요청의 Body에 보내는 내용이 잘못되었을 때 사용되는 코드
404 Not Found -> 해당 URL 요청을 처리할 수 없을 때, 요청된 URL이 존재하지 않는다는 의미
500 Internal Server Error -> 서버에서 에러가 났을 때의 Status Code