关于http协议的整理(二)

博客总结了相关知识,包括用curl获取页面头部信息,重点介绍CORS。当出现跨域问题,可通过加“Access-Control-Allow-Origin”头解决,也可用JSONP实现跨域。还阐述了CORS预请求,如允许的方法、Content-Type及其他限制等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

相关知识总结:

        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--是自定义的。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值