HTML Form 태그 POST GET /auth/login HTTP/1.1 HOST: localhost:8000 Content-Type: application/x-www-form-urlencoded email=qwe@gmail.com&password=asdfe html의 form 태그를 이용하여 서버로 POST로 submit하면 action의 경로가 request-target으로 들어가게 되고 input의 입력 데이터가 query형식으로 body에 들어가게 된다. Content-Type은 form태그를 사용할시 'application/x-www-form-urlendcode'가 된다. GET GET /home?username=kim HTTP/1.1 HOST: localhost:8000 GET으로 subm..
분류 전체보기
URI는 리소스만 식별한다 행위(method)와 리소스를 분리하여야 한다. 따라서 URI에 /user/delete와 같이 리소스가 아닌 delete와 같은 동사가 들어가면 안된다. delete와 같은 동사는 밑에서 배울 Method를 이용해서 표현해 준다. Method GET 리소스 조회 서버로 보낼 데이터는 query를 통해서 보낸다 POST 메시지 바디를 통해 서버로 request 데이터 전달 새 리소스 생성에 이용된다. ex) 신규 유저 생성, 게시판 글쓰기 요청 데이터를 처리하는데 사용된다. ( 데이터 생성을 넘어 프로세스 처리에도 할용) ex) 글쓰기 → 게시하기 처럼 프로세스의 상태가 병경될 때도 post 사용 컨트롤 URI를 사용할때도 post를 사용한다. PUT 리소스를 완전히 대체 리소스..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F60S38%2FbtsyWf9KHgO%2F7gKrAmVUDAWEPHMAFNhk6K%2Fimg.png)
HTTP 메시지 구조 기본적인 http 메시지 구조는 시작라인, 헤더, 공백(필수), 메시지 내용으로 구성돼 있다. HTTP request message, HTTP response message start-line(시작 라인) start-line = request-line + status-line 시작라인은 요청라인과 상태라인으로 구성된다. request-line= method SP request-target(path) SP HTTP-version CRLF (SP는 공백이다) 요청라인은 메소드 + 패스 + 버전으로 구성된다. method 메소드에는 GET, POST, PUT, DELETE 등등이 들어간다.. request-target(path) 요청 대상은 absolute-path[?query] 형태로 ..
HTTP(HyperText Transfer Protocol) 초기에는 html과 같은 하이퍼텍스트를 교환하기위한 프로토콜이였으나. 현대에 와서는 거의 모든 데이터를 http 메시지에 담아서 전송한다. HTTP/1.1과 HTTP/2는 TCP 기반이며 HTTP/3는 UDP에 기반을 두고있다. 클라이언트 -서버 구조 Request 와 Response구조 이며 클라이언드가 서버에 요청(request)을 보내고, 응답(response)을 대기하고 서버가 요청에 대한 결과를 응답(response)하는 구조이다. Stateless하다 http는 무상태 프로토콜이다. Stateful, Stateless Stateful 서버가 클라이언트의 상태를 보존한다. 즉, 서버가 쿠키나 세션을 통해서 클라이언트의 인증이 종료될 때..
Stateful 서버가 클라이언트의 상태를 보존한다. 즉, 서버가 쿠키나 세션을 통해서 클라이언트의 인증이 종료될 때 까지, 클라이언트의 정보를 저장한다. 예시를 들어보자면 클라이언트: 사과 2개 배달해 주세요 점원1: 주소는 어떻게 되세요? 클라이언트: 서울시 성북구 XXXX입니다. 점원1: 결제는 어떻게 해드릴 까요? ( 사과 2개를 산다는 것을 알고있다) 클라이언트: 카드로 하겠습니다. 점원1: 감사합니다 ( 사과 2개를 어떤 주소로 배달하는지 알고있다) 장점: 이것이 stateful로서 클라이언트의 정보를 저장하고 있음으로 통신이 갑자기 중단되어도 이어서 다시 시작 할 수있다. 하지만 위 예에서 중간이 점원이 바뀐다면 클라이언트: 사과 2개 배달해 주세요 점원1: 주소는 어떻게 되세요? 클라이언트..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxqvvC%2FbtsyMyB8QEf%2FY6RkVz0LV3rpTHGlAMaJJ1%2Fimg.png)
URI(Uniform Resource Identifier) uniform: 자원을 식별하는 통일된 방식 resource: 자원, URI로 식별할 수 있는 모든 것 identifier: 다른 항목과 구분하는데 필요한 정보 URI는 통합 자원 식별자로 URL과 URN으로 나누어 진다. URN(Uniform Resorce Name) URN은 이름으로 리소를 식별하는 개념이지만 실제로 방법이 보편화 되지 않았다. URL(Uniform Resource Locator) URL은 위치로 리소스를 식별한다 URL 구조 scheme - 주로 프로포콜을 사용한다 ex) http, https, ftp userinfo@ - URL에 사용자 정보를 포함하며 거의 사용하지 않는다 host - 호스트명 , 도메인명 또는 IP주소를..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7JhLb%2FbtsyLOeec17%2FMqk3Kog3jdO6XZfb1GcQGk%2Fimg.png)
IP(Internet Protocol) 역할 IP의 역할로는 지정한 IP 주소에 패킷(packet)이라는 통신 단위로 데이터를 전달한다. 한계 하지만 IP만으로는 비연결성(packet을 받을 대상이 없거나 서비스 불능 상태여도 packet을 전송한다) 비신뢰성( packet이 중간에 소실 되거나, 순서가 다르게 전달 될 수 있다) 프로그램 구분 불가( 같은IP를 사용하는 서버에서 여러 애플리케이션에 정보를 전송 할 수 없다) 라는 한계를 가진다. IP Packet IP Packet에는 출발지 IP와 목적지 IP의 정보가 들어간다 TCP(Transmisson Control Protocol) TCP는 IP의 한계들을 해결해 주기 위해서 고안되었다. TCP Segment TCP 세그먼트에는 출발지 PORT 목..
fetch란 JavaScript에서 서버에 네트워크 요청을 보내고 정보를 받아오기 위해 사용하는 라이브러리다. Form의 한계점 기본적으로 클라이언트에서 서버로 데이터를 전송하기 위해서는 html의 form 태그를 이용하여 아래처럼 나타냈다. Purchase Percent {{item.price}} 하지만 사용자의 입력을 받은 이외의 값을 서버로 전송하기 위해서 input태그에 display:none을 추가해서 사용했다. 하지만 fetch를 이용하면 입력받은 정보 뿐만 아니라 원하는 정보도 json 형태로 서버로 전송할 수 있다. Purchase Percent // 추가 {{item.price}} Fetch 기본적인 fetch로 post를 보내는 방법이다. let user = { name: 'John',..
여행의 이유 -김영하 이 책은 내가 고등학교 시절 스승의 날에 초등학교 담임선생님에게 선물하기 위해 샀던책이다. 읽어보진 않았지만 단순히 선생님이라 책을 좋아 할 것 같았고, 여행을 좋아하시던게 기억이나서 여행의 이유를 골랐던것 같다. 4년이 지난 지금 나는 이 책을 펴보았다. 추방과 멀미 인간은 언저나 자기 능력보다 너 높이 희망하며, 희망했던 것보다 성취에도 어느 정도는 만족하며, 그 어떤 결과에서도 결국 뭔가를 배우는 존재다. p.23 한 쇼핑몰 사장님이 하신 말이 있따. "지금 매출을 유지하고 싶은데, 가만히 있으면 유지조차 할 수 없다. 더 높이 가려고 발버둥 쳐야지만 지금 상태라도 유지할 수 있다." 많은 사람들이 더 나은 삶을 살기위해 노력한다. 그 사이에서는 가만히 있기만 해도 뒤쳐진 사람..