关于http协议的整理(二)

目录

 

相关知识总结:

        1.curl获取页面头部信息

2.CORS

3.CORS预请求


相关知识总结:

  1.curl获取页面头部信息

curl www.baidu.com

  

curl -v www.baidu.com

2.CORS

首先先尝试运行一个web服务,通过content-type的不同来展示

const http = require('http')
const fs = require('fs')

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

    const html = fs.readFileSync('test.html', 'utf-8');
    response.writeHead(200, {
        'Content-Type': 'text/html'
    })
    
    response.end(html);
}).listen(8888)

console.log('listen 8888');

 

const http = require('http')
const fs = require('fs')

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

    const html = fs.readFileSync('test.html', 'utf-8');
    response.writeHead(200, {
        'Content-Type': 'text/plain'
    })
    
    response.end(html);
}).listen(8888)

console.log('listen 8888');

当出现跨域问题,通过加头来解决

const http = require('http')
const fs = require('fs')

http.createServer(function(request, response) {
    console.log('request come', request.url);
    
    response.writeHead(200, {
        'Access-Control-Allow-Origin': '*'
    })

    response.end('end')
}).listen(8887)

console.log('listen 8887');

加了头部的"Access-Control-Allow-Origin"就不再有问题,*都可以访问,也可以通过动态的判断来写入"Access-Control-Allow-Origin",如果没有加的话,其实是他的请求解析了不允许就没返回了。

必须要同域,如果跨域要写上相应的头,除了这个还有JSONP也可以实现跨域,img,link.script可以跨域。

jsonp就是script里面来调用加上callback

3.CORS预请求

允许的方法:get,head,post.

允许的Content-Type:text/plain,multipart/form-data,application/x-www-form-urlencoded

其他限制:请求头限制,XMLHttpRequestUpload对象均没有注册任何事件监听器,请求中没有使用ReadableStream对象

const http = require('http')
const fs = require('fs')

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

    response.writeHead(200, {
        'Access-Control-Allow-Origin': '*',
        'X-Test-Cors': '123',
        'Access-Control-Allow-Methods': 'POST, PUT, Delete',
        'Access-Control-Allow-Max-Age': '1000'
    })

    response.end('end')
}).listen(8887)

console.log('listen 8887');

 几个相关属性,其中x--是自定义的。

猜你喜欢

转载自blog.csdn.net/qq_37021554/article/details/88743915
今日推荐