HTTP 各种特性应用

Posted zhangtaotqy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP 各种特性应用相关的知识,希望对你有一定的参考价值。

一、 数据协商

分类:

客户端请求:

Accept:

Accept:表明 我想要什么样的数据

Accept-Encoding:数据是什么样的编码方式 进行传输。主要限制 服务端怎样进行数据的压缩。

Accept-Language:根据这个 判断 返回的数据是什么语言。

User-Agent:标识浏览器相关的信息。

 

服务器返回内容:

Content

Content-Type:选择一种返回的数据格式 进行数据返回。

Content-Encoding:服务端 用了什么样的 压缩方式。

Content-Language:判断通过请求返回的什么语言。

server.js 代码

const http = require(http)
const fs = require(fs)
const zlib = require(zlib)

http.createServer(function (request, response) {
  console.log(request come, request.url)

  const html = fs.readFileSync(test.html)
  response.writeHead(200, {
    Content-Type: text/html,
    // ‘X-Content-Options‘: ‘nosniff‘ //告诉浏览器不要随意猜测我返回的数据类型
    Content-Encoding: gzip //压缩方式
  })
  response.end(zlib.gzipSync(html))
}).listen(8888)

console.log(server listening on 8888)

test.html 代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <form action="/form" id="form" enctype="application/x-www-form-urlencoded">
    <input type="text" name="name">
    <input type="password" name="password">
    <input type="file" name="file">
    <input type="submit">
  </form>
  <script>
    var form = document.getElementById(form)
    form.addEventListener(submit, function (e) {
      e.preventDefault()
      var formData = new FormData(form)
      fetch(/form, {
        method: POST,
        body: formData
      })
    })
  </script>
</body>
</html>

请求返回结果:压缩前后

技术分享图片

post 数据返回格式:

技术分享图片

二、 Redirect

const http = require(http)

http.createServer(function (request, response) {
  console.log(request come, request.url)

  if (request.url === /) {
    response.writeHead(302, {  // or 301 慎用 直接访问 /new 302要先经过服务端的一次跳转 才能访问 /new
      Location: /new
    })
    response.end()
  }
  if (request.url === /new) {
    response.writeHead(200, {
      Content-Type: text/html,
    })
    response.end(<div>this is content</div>)
  }
}).listen(8888)

console.log(server listening on 8888)

 

访问结果:

 

以上是关于HTTP 各种特性应用的主要内容,如果未能解决你的问题,请参考以下文章

vbscript 各种自定义代码片段 - 有关详细信息,请参阅注释

Linux bash基础特性二

几个非常实用的JQuery代码片段

IOS开发-OC学习-常用功能代码片段整理

小程序各种功能代码片段整理---持续更新

HTTP各种特性