# http
Flutter Dio
출처 : [플러터 / 라이브러리] API 통신에 편리한 dio의 기능정리. 출처 : [Flutter] Dio 출처 : [Flutter] Interceptor

모든 개발자를 위한 HTTP 웹 기본지식 메서드, HTTP 상태코드
인프런의 모든 개발자를 위한 HTTP 웹 기본 지식 (김영한) 강의를 듣고 정리한 내용입니다. HTTP 메소드 HTTP API API URI 작성 시 가장중요한것은 리소스 식별이다 회원가입의 경우 회원이라는 리소스만 식별가능하도록 회원 리소스는 URP 매핑 , HTTP 메서드로 행위를 분리시켜야 한다. 예시 GET 회원 목록 조회/members GET 회원 조회/members/{id} POST 회원 등록/members/{id} PATCH 회원 수정/members/{id} DELETE 회원 삭제/members/{id} HTTP 메소드 종류 HTTP 의 주 메소드는 다음 다섯가지가 있다 <

[TIL] HTTP
웹에서 데이터를 주고받을 때 사용되는 프로토콜 HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 하다. ✅ 특징 클라이언트-서버 모델 HTTP는 클라이언트(웹 브라우저)와 서버(웹 서버) 간의 통신을 기반으로 한다. 클라이언트는 웹 페이지를 요청하고, 서버는 요청된 페이지를 전송하여 응답한다. 요청과 응답 HTTP 통신은 요청(request)과 응답(response) 의 두 부분으로 구성됩니다. 클라이언트가 서버에게 요청을 보내면, 서버는 그에 대한 응답을 반환한다. 요청과 응답은 텍스트 형식으로 구성되며, 주로 HTML, CSS, JavaScript, 이미지, 동영상 등의 웹 리소스를 주고받을 때 사용된다.
[Servlet/Srping] ReuqestParameter Input Parameter 수정하기
HttpServlet 으로 들어온 Parameter들을 값을 변경해서 사용할 수 있다. 특정 특수문자 변환하기 특정 서비스 진입 전 입력된 데이터를 가공하기에 유용하다 1) HttpServletRequest 변환 클래스 추가 2) Controller에서 적용 예제 물론 Parameter를 변수로 사용해서 변환할 수 있지만 HttpServletRequest를 직접 사용해야 할 경우에는 유용하게 이용할 수 있다.

HTTP, HTTPS
HTTP (HyperText Transfer Protocol) HTTP는 웹 서버와 클라이언트(보통 웹 브라우저) 간에 정보를 주고 받을 수 있게 해주는 프로토콜이다. 클라이언트가 HTTP 요청을 보내면, 서버가 해당 요청에 따른 결과를 HTTP 응답한다. 하지만, HTTP의 단점은 데이터가 암호화되지 않아서 전송 중인 정보가 제3자에게 쉽게 노출될 수 있다는 것이며, 이것은 중요한 개인정보나 신용카드 정보 등을 전송할 때 문제가 될 수 있다. HTTPS(HyperText Transfer Protocol Secure) HTTPS는 기본적으로 HTTP와 같은 방식으로 작동하지만, 추가적으로 SSL/TLS 프로토콜을 사용하여 전송되는 데이터를 암호화한다. 데이터의 안전성
HTTP 상태코드
1xx (정보) 요청이 수신되어 처리 중입니다. 2xx (성공) 요청이 정상적으로 처리되었습니다. 3xx (리다이렉션 메시지) 요청을 완료하려면 추가 행동이 필요합니다. 4xx (클라이언트 요청 오류) 클라이언트의 요청이 잘못되어 서버가 요청을 수행할 수 없습니다. 5xx (서버 응답 오류) 서버 내부에 에러가 발생하여 클라이언트 요청에 대해 적절히 수행하지 못했습니다.

모든 개발자를 위한 HTTP 웹 기본 지식(1) - 인터넷 네크워크
❤️ 인터넷 네트워크 📝 인터넷 통신 > #### 인터넷에서 컴퓨터 둘은 어떻게 통신할까? 클라이언트와 서버가 가까이 있을 경우 케이블로 통신이 가능하지만, 그 반대의 경우 클라이언트와 서버 사이에 있는 복잡한 인터넷 망을 통해 메시지를 전달할 수 있다. 인터넷 망의 수많은 중간 노드를 거쳐야 한다. -> 어떤 규칙? 📝 IP(인터넷 프로토콜) IP 주소 부여 클라이언트와 전달하려는 서버에 IP주소가 부여 되어야 한다 역할 지정한 IP주소에 데이터 전달 패킷(Paket)이라는 통신 단위로 데이터 전달 IP 패킷 전송 데이터와 함께 출발지IP, 목적지IP 등을 묶어 패킷으로 만든 후 전달 <img

세션 인증 vs JWT 인증
개발자로 회사를 다니면서 서비스 개발은 많이 해왔는데 기회가 없어 로그인 쪽으로는 단 한 번도 작업해 본적이 없다. 이직을 위해 공부도 할겸 해서 바닥 부터 만들어 보자 이렇게 마음먹었고 로그인 부터 개발하고자 마음 먹었다. 인증을 위한 수단으로 HTTP 자체 제공 프레임워크 부터 세션, JWT 까지 모두 정의해 보았다. 세션 JWT (Json Web Token) 음 좋아 정리 다했으니, 이제 로그인 작업을 해볼까? 근데 바로 벽에 부딪혔다. 
HTTP1.0~HTTP3.0
HTTP > 'HyperText Transfer Protocol'의 약자로 서버와 클라이언트가 서로 데이터를 주고받기 위해 사용되는 통신 규약으로, 네트워크 장치 간에 정보를 전송하도록 설계된 애플리케이션 계층 프로토콜입니다. ⇒ web browser와 web server 사이에서 통신할 때 서로가 알아 들을 수 있는 일종의 약속인 message가 필요 초기에는 HTML 파일 전송만이 가능했지만(http/9.0) 현재는 이미지, JSON 등 다양한 형식의 파일을 전송할 수 있습니다. HTTP(애플리케이션 계층)는 TCP/IP 기반에서 동작합니다. 'HTTP'는 서버/클라이언트 모델로, 클라이언트와 서버 사이에 이뤄지는 요청(request)와 응답(response) 구조로 이루어져있습니다. 비연결(Connectionsless): 클라이언트가 요청을 서버에 보내고 서버가 적절한 응답을 클라이언트에 보내면 바로 연결이 끊깁니다. 서버에서 다수의 클

URI
인프런 김영한님 HTTP 웹 기본지식 강의를 듣고 정리한 내용입니다! URI 와 URL 흔히 알고 익숙한 단어는 URI 보단 URL 이다. URL 말고도 URN 이라는것도 있는데 둘 다 URI 에 포함되어 있다. URI 뜻 Uniform : 리소스를 식별하는 통일된 방식 Resource : URI 로 식별할 수 있는 모든 것(자원)M Identifier : 다른 항목과 구분하는데 필요한 정보 URL, URN 뜻 `URL(
JWT 란?
개념 JWT (Json Web Token) 은 선택가능한 서명(signature) 방식 및 암호화 방식을 사용해 데이터를 만들기 위한 인터넷 표준(인터넷에 적용되는 기술이나 방법론) 말이 어려운데 당사자(보통 유저와 서버) 간에 정보를 JSON 개체로 간결하고 안전하게 전송하기 위한 규격 이라고 쉽게 설명할 수 있다. 다음과 같은 상황에 사용할 수 있다. 권한 부여 사용자가 로그인 후, 후속 요청에 JWT가 포함되고, 이를 검증하여 서버의 자원에 쉽게 액세스 할 수 있다. 정보 교환 서명을 통해 발신자가 누구인지 확인할 수 있고, 헤더와 페이로드를 사용하여 서명을 계산하므로 컨텐츠가 변조되지 않았음을 쉽게 확인할 수 있어 당사자 간에 정보를 안전하게 전송할 수 있

#1 HTTP
HTTP (Hyper Text Transfer Protocol) > #### HTTP는 웹상에서 정보를 주고 받을수 있는 프로토콜 이다. HTTP는 전 세계의 웹 서버로부터 이 대량의 정보를 빠르고, 간편하고, 정확하게 사람들의 PC에 설치 된 웨브라우저로 옮겨준다. HTTP는 신뢰성있는 데이터 전송 프로토콜을 사용하기 때문에, 데이터가 지구 반대편에서 오더라도 전송 중 손상되거나 꼬이지 않음을 보장한다. 웹서버는 HTTP프로토콜로 의사소통 하기 때문에 보통HTTP서버라고 불린다. 클라이언트 > 둘 이상의 컴퓨터들이 통신할때 호스트에 종속되어 통신하는 컴퓨터를 뜻하는 말. 흔한 클라이언트 종류 : 구글 크롬 인터넷 익스플로러 리소스 > 웹서버는 웹 리소스를 관리하고 제공한다. 웹

HTTP에서 인증, 쿠키, 세션?
인증 (Authentcation) 이란? 내가 누구인지 증명하는 것이다. 흔히 웹사이트에서 로그인을 통해 회원가입하면서 입력한 아이디 비밀번호를 입력하여, 서버에 저장된 데이터와 일치시키는 것도 인증의 행위 중 하나이다. HTTP에서의 인증? HTTP는 사용자 인증을 위해 자체에서 제공하는 인증 요구/응답 프레임워크가 있다. 웹 애플리케이션이 HTTP 요청 메시지를 받으면, 서버는 요청을 처리하는 대신에 현재 사용자가 누구인지를 알 수 있게 비밀번호 같이 개인 정보를 요구하는 '인증 요구'로 응답할 수 있다 HTTP에는 [기본 인증](https://github.com/xeropise/Books/blob/main/1.%20HTTP%20%EC%99%84%EB%B2%BD%20
HTTP 상태 코드에 대해 설명해주세요.
내용 정리 HTTP 상태 코드는 클라이언트가 보낸 특정 HTTP 요청에 대한 서버의 응답 코드로, 상태 코드에 따라 요청의 성공이나 실패 여부를 판단할 수 있습니다. 100~500번대까지 정의되어 있는데, 100번대는 정보의 조건부 응답을 뜻하는 것으로 알고 있는데, 웹 개발에서 직접 사용할 일은 거의 없다고 알고 있습니다. 200번대는 클라이언트의 요청이 서버에서 성공적으로 처리되었음을 뜻하고, 300번대는 클라이언트가 요청한 리소스가 다른 위치에 있거나 재요청이 필요함을 나타냅니다. 400번대, 500번대는 둘 다 실패를 의미하는데, 400번대는 그 원인이 클라이언트 측에 있고 500번대는 서버 측에 있다는 걸 의미합니다. 꼬리 질문 실제로 이 http 상태 코드로 어떤 상황을 판단하거나 프로젝트에 활용했던 경험이 있으면 말씀해주세요 401과 404의 차이점은 뭔가요? 참고자료 https://www.daleseo.com/http-status

[HTTP] HTTP METHOD란?
시작하기 앞서🙂 >벨로그를 시작하고 본격적으로 작성하는 첫 글이다...! 사실 기존에 공부한 내용을 풀어쓰거나 누군가에게 설명해본 경험이 많이 없기 때문에 때때론 글의 풀이가 어색하기도, 잘못된 내용을 전달할 수도 있을 것 같다,, 그래도 이러한 과정이 성장의 밑거름이 되듯 할 수 있는데 까지는 최선을 다해 공부하고 설명해보려고 한다:) (잘못된 내용이 서술되어 있을 경우 언제든지 지적해주시면 감사한 마음으로 공부하겠습니다😁) 그럼 HTTP METHOD가 무엇인지 알아보자! HTTP METHOD는 뭘까? HTTP는 Hyper Text Transfer Protocol의 약자로 HTML과 같은 하이퍼미디어 문서를 전송하기 위한
HTTP 헤더1
header-field = field-name ":" OWS field-value OWS (OWS : 띄어쓰기 허용) 용도 HTTP 전송에 필요한 모든 부가정보 ex) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증 , 요청클라이언트, 서버 정보, 캐시 관리정보... 너무많다. HTTP 표준 1999년 RFC2616 폐기 2014년 RFC7230 ~ 7325 등장 -> RFC72X 를 배우자 RFC 723x 변화 엔티티(Entity) -> 표현(Representation) Representation = Representation Metadata + Representation Data -> 메시지 본문과 메시지의 본문을 나타내는 Meta data 헤더로 구성되어있다. 표현 Content-Type: 표현 데이터의 형식 Content-Encoding: 표현 데이터의 압축 방식 Content-Language:

쿠키에 대해서 더 알게된 내용들
들어가기 전에 잠시 경험담! 실무에서 어드민 개발을 진행했던 적이 있다. 이 때 쿠키를 회원의 인증과 인가를 구현하기 위한 수단으로 사용했었다. 로그인 요청이 요청이 오면 그에 맞는 access token과 refresh token을 response body에 포함시켜 반환했고, 그에 맞게 앞단에서 Cookie를 생성한 후에 관리했었다. 만들면서 들었던 생각은 "쿠키를 이렇게 사용하는게 맞아?" 였다. 쿠키에 대해서 잘 모르고 사용하는 것을 직감했었다. 쿠키에 대해서 더 알게 된 내용을 적어 보고자 한다. 쿠키란? HTTP 쿠키(MDN) 글의 쿠키에 대한 정의가 가장 와닿아서 가져와 보았다. > HTTP 쿠키(웹 쿠키, 브라우저 쿠키)는 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각입니다. 브라우저는 그 데이터 조각들을 저장해
Node.js API 서버에서 HTTP Request 보내기
Node.js 스크립트에서 다른 API 서버에 HTTP Request 서버를 보내는 것은 쉬운 일인 것으로 여겨진다. 많은 구글 사이트가 npm의 request 모듈을 이용해서 HTTP 요청을 보내라고 써져 있지만 세간에서는 해당 모듈이 deprecated된 것으로 여겨진다. Node에 기본적으로 딸려오는 HTTPS 모듈을 사용하려고 노력해봤지만 매우 low-level한 것 같아서 그만두고 원래 React 프로젝트에서 사용하던 Axios 모듈을 사용하기로 했다. 사용법은 간단하다. 위 요청은 데이터를 x-www-form-urlencoded 형식으로 보낼 때 사용된다. (데이터는 qs(query-string)을 이용하여 형식에 맞게 변환해서 넣은 것이다.) 위는 async-await를 사용했으므로 꼭 함수에 async 지정자를 작성해줘야 한다.
[Web] HTTP Status Code
2XX : Success | Status Code | Status Name | Description | |:-----------:|-------------|--------------------------------------| | 200 | OK | 클라이언트의 요청을 서버가 정상적으로 처리함 | | 201 | Created | 클라이언트의 요청을 서버가 정상적으로 처리하여 새 리소스가 생성됨 | | 202 | Accepted | 클라이언트의 요청은 정상적이나 서버가 아직 요청을 완료하지 않음 | | 204 | No Content | 클라이언트의 요청은 정상적이나 콘텐츠를 제공하지 않음 | 4XX : Client Errors | Status Code | Status Name | Des

HTTP multipart/form-data 란?
HTTP란? 인터넷 상에서 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약 클라이언트 -> 서버 업로드 과정 파일 업로드를 구현할 때, 클라이언트가 웹브라우저라면 폼을 통해서 파일을 등록해서 전송한다. 웹 브라우저가 보내는 HTTP 메시지는 Content-Type 속성이 multipart/form-data로 지정되고 정해진 형식에 따라 메시지를 인코딩하여 전송한다. 이를 처리하기 위한 서버는 멀티파트 메시지에 대해서 각 파트별로 분리하여 개별 파일의 정보를 얻게 된다. 이미지 파일을 전송한다고 해서 이메일에 첨부파일을 붙여 메일을 보내는 것처럼 png나 jpg 파일 자체가 전송되는 것이 아니다. 이미지 파일도 문자로 이뤄져 있기 때문에 이미지 파일을 문자로 생성하여 HTTP request body에 담아 서버로 전송하는 것이다. ![](https://velog.velcdn.com/images/hotdog1029/post/c51b62