1、url组成部分
协议 + 主机名 + 端口 + 路径 + 查询字符串 + 信息片段
http:// localhost :3000 /about ?test=1 #history
协议:确定如何传输请求,主要有http和https其他的还有file和ftp
主机名:标示服务器
端口:每台服务器都有一系列端口号,如果省略端口号,默认80端口负责http传输,443端口负责https传输
路径:应用中页面或者资源的唯一标示
查询字符串:键值对集合,以问号开头,键值对直接有&连接,所有的名称和值都必须用URL编码
信息片段:XXXXX不懂
2、http请求方法
GET大部分请求
POST主要用来处理信息提交
3、请求报头
host:localhost:3000 user-agent:Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0 accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 accept-language:en-US,en;q=0.5 accept-encoding:gzip, deflate cookie:blog=s%3AWPZOa8hcVA41AcCQey2_glPrgk_CkdR9.CMK58MW0goZitwAxNWX0lrCGbNFVKA5YkjpoVNtcPtQ; name=123456; session=eyJjb3VudCI6Mjd9; session.sig=jdTY4Hvr1Fz6CW_khB7NmM5Nm-M; zhangkai=eyJjb3VudCI6MzJ9; zhangkai.sig=tJmPq2D6YubvubA4CFVjaz7t0s8; isvisited=1; isVisited=1 connection:keep-alive upgrade-insecure-requests:1 cache-control:max-age=0
4、请求体
一般GET请求没有请求体
POST请求有主体内容,请求体主题类型为application/x-www-form-urlendcoded
如果支持文件上传,则请求体媒体类型为multer/form-data
如果是ajax请求,则application/json
5、请求方法
req.params XXXXXX
req.query get请求参数
req.body post请求参数
req.router 当前匹配路径信息
req.headers 请求报头
req.ip 客户端ip
req.path 请求路径
req.accetpLanguanges 客户端首选的语言
6、响应对象
res.status(code) http状态代码
res.set(name,value)设置响应头
res.cookie(name,value,{}) res.clearCookie(name,{})设置或者清除cookie
res.redirect([status],url)重定向路由器
res.send(status,body) 向客户端发送响应以及可选的状态吗
res.json(status,json) 向客户端发送json以及可选的状态码