Web 9일차 ()

2022. 12. 30. 12:47코딩배움일지/Web 구현

HTTP 

애플리케이션 레벨의 네트워크 프로토콜

www (World Wild Web)에서 데이터를 주고받도록 하는 프로토콜

 

hypertext : 다른 문서로 향하는 링크가 있는 텍스트

transport portocol : 통신 규약

 

http 초기에는 html 문서 통신을 위한 프로토콜이었다.

기술의 발전으로 미디어 ㅇ리소스 및 각종 데이터 전송이 구현가능

 

클라이언트 → http Request 서버  http Response 클라이언트

 

http Request 예시

GET / main HTTP/1.1
Accpet: application/json
Autorization: Bearer token

HTTP Request Method

메서드
기능
GET
특정 리소스의 표시를 요청함. GET을 사용하는 요청은 오직 데이터를 받기만 함
HEAD
GET 메서드의 요청과 동일한 응답을 요구하지만, 응답 본문을 포함하지 않음
POST
특정 리소스에 엔티티를 제출할 때 쓰임. 종종 서버의 상태 변화나 부작용을 일으킴
PUT
목적 리소스의 모든 현재 표시를 요청 payload로 바꿈 (전체 수정)
DELETE
특정 리소스를 삭제
CONNECT
목적 리소스로 식별되는 서버로의 터널을 맺음
OPTIONS
목적 리소스의 통신을 설정하는데 쓰임
PATCH
리소스의 일부분만 수정

//GET 방식은 로그인 할때는 안된다. 보안에 취약하다.

 

POST 방식은 길이에 제약이 없다.

 

 

HTTP Response 예시

 

HTTP/1.1 200 OK
Date: Mon, 23 May 2005 22:38:34 GMT
Content-Type: text/html; charset=UTF-8
Content-Encoding: UTF-8
Content-Length: 138
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)
ETag: "3f80f-1b6-3e1cb03b"
Accept-Ranges: bytes
Connection: close

<html>
<head>
  <title>An Example Page</title>
</head>
<body>
  Hello World, this is a very simple HTML document.
</body>
</html>

HTTP Status

 

Code Message 설명

Code Message 설명
1XX   정보 응답
100 CONTINUE 상태가 괜찮으며 클라이언트가 계속해서 요청하거나 요청이 완료된 경우에는 무시해도 된다는 정보를 알려줍니다.
101 SWITCHING_PROTOCOL 클라이언트가 보낸 upgrade 요청 헤더에 대한 응답으로,
서버에서 프로토콜을 변경할 것임을 알려줍니다
2XX   성공 응답
200 OK 요청이 성공적으로 완료되었다는 의미입니다.
202 ACCEPTED 요청을 수신했지만 그에 응하여 행동할 수 없다는 의미입니다.
203    
204    
3XX    
300    
301    
302    
305    
307    
4XX 개발자가 잘못한거 error
400 Bad Request  
401 Unauthorized 인증 실패  
402 Payment required // 잘 안뜬다.  
403 Forbidden 인가실패 권한없다. 허가되지 않는다.  
404 Not Found   
405 Method Not Allowed 리소스에서 지원되지 않는다. 호출 허용되는 않는다.  
408 Request Timeout  
409 Conflict 요청중일때 또 보내면 나온다.    
5XX  개발자가 잘못한것 서버오류응답
500 Internal Sercer Error서버에서 처리방법을 알 수 없는 상황  
502 Bad Gateway gateway를 찾아가지 못한거다.  (이거 뜨면 망한거다)
503 Service Unavailable 요청을 처리할 준비가 되지 않음. 메모리 과부하  
504 Gateway Timeout (진짜 서버에서 반환하는 속도가 느를때/방화벽에 막혔을 경우) (이거 뜨면 망한거다)