HTTP请求和响应(二)

351 阅读2分钟

请求中有什么

这里主要介绍一下请求中比较重要的要素:

1、请求行

2、请求头

3、请求体

请求行

请求行中包含的内容有请求动词,路径,协议名/版本

  • 请求动词分:GET | POST | PUT | DELETE | PATCH 等

  • 路径:不输入域名时,默认/根路径

  • 协议名/版本:没啥好说的,一般都是HTTP/1.1

请求头

请求头中包含的内容为Host、Accept、Content-Type

  • Host:请求的域名

  • Accept:接受的类型

比如接受文件的类型之类的text/html、text/css之类的。这里的接受类型才是指定文件类型的关键。

文件后缀例如1.jpg中的jpg只是决定文件的打开方式而已

  • Content-Type:请求体的类型

这里指定的类型是决定文件类型的关键

请求体内容

如果请求动词是GET,则没有请求体内容

用chrome查看请求内容

F12 打开开发者工具 --> Network --> 点击view source(视口来源)

在Request Headers中可以看到请求行、请求头的信息。

注意:此时模式为GET,所以没有请求体信息

在General中可以看到请求模式的相关信息包括请求状态码request status,请求模式request method

打印请求行 请求头的信息

代码:

    console.log(response.statusCode);//响应的状态码
    console.log(request.httpVersion);//http的版本信息
    console.log(request.method);//请求方式
    console.log(request.headers["accept"])//请求头中的接受类型
    console.log(request.headers.host)//请求头中的域名
    console.log(request.headers)//请求头整个信息

对应内容:

响应

响应的内容包括:状态行(响应行)、响应类型、响应体(响应内容)

在chorme的Response Headers 中同样可以看到响应的情况

在后台代码中设置对应的内容

        response.statusCode = 200 //设置状态码是200
        response.setHeader('Content-Type', 'text/css;charset=utf-8') //设置响应头
        response.write(`body{color: red;}`)//设置响应体
        response.end()//这里表示响应可以发送给用户了
  • 如果状态码设置为404,可以不写setHeaderwrite

  • setHeader中可以设置自定义的内容,也可以把这个内容响应给用户,例如我加一句代码response.setHeader('qiuyanxi','11')

响应内容: 响应内容

状态码的拓展

下面是常见的HTTP状态码:

  • 200 - 请求成功
  • 301 - 资源(网页等)被永久转移到其它URL
  • 404 - 请求的资源(网页等)不存在
  • 500 - 内部服务器错误