<body>
<main>
<form action='/message' method='POST'>
<input type='text' placeholder='메세지를 입력하세요.'/>
<button type='submit'>Send!</button></input>
</form>
</main>
</body>
Send!
해당 input에 텍스트를 입력 후, Send 버튼을 클릭하면
url이 localhost:3100/message
로 변경되는 것을 확인할 수 있다.
Q. form 태그 속성인 action은 브라우저 주소를 가리키는 것인가?
A. 아니요, form
태그의 action
속성은 현재 문서에서 데이터를 보낼 대상 URL을 지정합니다.
즉, 사용자가 입력한 데이터를 서버로 전송할 때 어느 주소로 전송할지를 결정합니다.
브라우저의 주소를 가리키는 것이 아닙니다.
위의 예시에서 <form action='/message' method='POST'>
은 사용자가 폼 안에 입력한 데이터를 /message 경로로 POST 방식으로 전송한다는 의미입니다. 따라서 사용자가 폼 안의 입력 필드에 메시지를 입력하고 "Send" 버튼을 클릭하면, 브라우저는 입력된 데이터를 /message 경로로 POST 요청을 보냅니다.
들어오는 요청이 데이터 스트림으로 보내지게 된다.
그럼 여기서 데이터 스트림
이란?
데이터 스트림을 알기 위해선
버퍼
를 알아야한다.
chuck를 다루려면 buffer를 사용해야한다.
buffer는 일종의 버스 정류장 역할을 한다.
데이터 스트림
데이터 스트림은 데이터의 연속적인 흐름을 의미합니다. 이것은 데이터의 일부가 한 번에 처리되지 않고 조각조각 나눠져 전달되는 것을 의미합니다. 예를 들어, 파일을 읽거나 네트워크를 통해 데이터를 송수신할 때, 데이터가 한 번에 전체가 아니라 일부씩 전달되는데, 이러한 데이터의 흐름을 데이터 스트림이라고 합니다. Node.js에서는 많은 API들이 데이터 스트림을 다루는데, 이것은 메모리를 효율적으로 사용하고, 입출력 작업이 끝날 때까지 기다리지 않고도 데이터를 전송하거나 받을 수 있도록 해줍니다.
버퍼
버퍼는 일정한 크기의 메모리 공간을 의미합니다. 데이터 스트림에서 데이터는 작은 조각(chunk)으로 나누어져서 전송됩니다. 이때 각각의 조각은 일정한 크기의 메모리 공간인 버퍼에 담겨 전송됩니다. 이러한 버퍼는 데이터를 임시로 저장하고, 필요할 때 한 번에 처리할 수 있도록 해줍니다. Node.js에서는 대부분의 입출력 작업이 버퍼를 사용하여 데이터를 다루게 됩니다.
따라서 요청이 데이터 스트림으로 보내지게 되면, 요청의 데이터는 작은 조각으로 나뉘어서 전달되며, 각각의 조각은 버퍼에 저장되어 처리됩니다. 버퍼를 사용하면 요청의 데이터를 일부분씩 받아서 처리할 수 있으므로, 메모리를 효율적으로 사용할 수 있고, 대용량의 데이터도 효율적으로 처리할 수 있게 됩니다.
!!중요!!
input 태그에 name 속성이 없을 경우에는 해당 input 필드의 데이터가 서버로 전송되지 않는다.
name 속성은 입력 필드의 이름을 지정하는데, 서버로 데이터를 전송할 때 이 이름을 기반으로 데이터가 전달된다.