HTTP的一些知识

185 阅读2分钟

HTTP的一些知识

HTTP基础概念

请求

(具体在chorme =》 检查 =》network =》 headers =》request headers=》

​ view sourse 中查看)

组成

  • 请求行(背):

​ 请求动词 路径➕查询参数 协议名/版本

  • 请求头

​ host:域名、ip

​ accept: text/html (表示想要接受的内容)

​ content-type:请求体的格式

  • 回车(无意义 隔开)

  • 请求体(也就是上传内容)

细节

三部分:请求行 请求头 请求体

请求动词:GET(获取内容)/POST (上传内容)/PUT/PATCH/DELETE等

请求体在GET请求中一般为空

文档位置在RFC 2612 第五章

标准文档:RFC 2612(搜索HTTP RFC 2612 中文)

js对大小比较敏感


响应

组成

  • 状态行(背):

​ 协议名/版本 状态码 状态字符串

  • 响应头:

​ Content-Type :响应体的格式

  • 回车(无意义 隔开)

  • 响应体

细节

三部分:状态行、响应头、响应体

常见状态码是考点

文档位于 RFC 2612 第六章


用curl构造请求

curl -v http://127.0.0.1:8888

设置请求词

​ curl -v -X POST http://127.0.0.1:8888

​ 即将请求词设置为post,注意大小写

设置路径和查询参数

​ 直接在url后面加

设置请求头

​ -H ‘Name:value’ 或 --header ‘Name:Value’

​ 比如你想看accept的值:

​ curl -v -H 'Accept: text/html' http://127.0.0.1:8888

设置请求体

​ -d '内容' 或者 --data‘内容’


用Node.js读取请求

读取请求词

​ request.method

读取路径

​ request.url 路径,带查询参数

​ path 纯路径,不带查询参数

​ query 只有查询参数

读取请求头

​ request.headers['Accept']

读取请求体

​ 不解释


用Node.js设置响应

设置响应状态码

​ response.statusCode=200

设置响应头

​ response.setHeader("Content-type","text/html")

设置响应体

​ response.write(内容)

​ 注意,是反单引号``

​ 内容可以追加

随笔:curl其实就是个没有页面的浏览器


console.log 调试大法

console.log("path:" + path);

console.log("path: === ./style.css")

console.log(path === "./style.css")

一行一行的path来试试

第一 测试path本身根目录:

​ console.log("path:" + path);

第二 测试第二个path:

​ console.log("path: === ./style.css")

运行后会出现false,如下错误:

第三 找到错误后,看看究竟哪里错了:

​ console.log("path:" + path);

​ console.log("path: === ./style.css")

​ console.log(path === "./style.css")

注意格式!!!,运行后会出现:

可以看到:

​ path:/style.css

​ path: ==== ./style.css

两者差别很大,将点去掉即可!