1. 请求参数
客户端向服务器端发送请求时,有时需要携带一些客户信息,客户信息需要通过请求参数的形式传递到服务器端,比如登录操作。
2. GET 请求参数
- 参数被放置在浏览器地址栏中,例如:http://localhost:3000/?name=zhangsan&age=20
- 如下对请求参数进行解析:
- 再利用es6中对象解构对代码进行优化:
3. POST 请求参数
- 参数被放置在请求体中进行传输
- 获取POST参数需要使用data事件和end事件
- 使用 querystring 系统系统模块将参数转换为对象格式(内置模块 querystring 的方法已被弃用,下面的代码示例中下载了第三方包query-string)
- 当有请求参数传输的时候,就会触发data事件,当请求参数传递完成就会触发end事件
ps:由于post参数在理论上可以是无限的,所以作为服务器来讲,为了减轻压力,post请求参数不是一次就接收完的。比如说我可能传了100m的数据,可能分10次接收,每次接收10m。
4. 路由
路由是指客户端请求地址与服务器端程序代码的对应关系。简单地说,就是请求什么响应什么。
5. 静态资源
服务器端不需要处理,可以直接响应给客户端的资源就是静态资源,例如CSS,JavaScript,image文件。
我们为了方便地统一处理这些静态资源,所以,我们约定把所有的静态资源都存放在public目录中
- 在服务端中,文件中的路径就不要去写相对路径了。
- 因为这个时候所有的资源都是通过 url 标识来获取的
- 我的服务器开放了 /public/ 目录
- 所以这里的请求路径都写成:/public/xxx
- / 在这里就是 url 根路径的意思。
- 浏览器在真正发请求的时候会最终把 http://127.0.0.1:3000 拼上
- 不要再想文件路径了,把所有的路径都想象成 url 地址
6. 动态资源
相同的请求地址不同的响应资源,这种资源就是动态资源
第三方模块 mime ---- 获得所有请求类型
- 虽然高级浏览器会帮我们自动解析有哪些请求类型,但是为了避免隐患,还是使用这个方法去获得所有请求类型
7. 客户端请求途径
- GET方式
- 浏览器地址栏
- link标签的ref属性
- script标签的src属性
- img标签的src属性
- Form表单提交
- POST方式
- 表单提交