跨域和http协议

HTTP的请求只能是客户端向服务器发起。

第一步:建立连接(三次握手)

第二步:开始通信

通信中又分为客户端对服务器请求

请求要遵循请求报文的要求

请求报文:

请求行:请求方式/请求路径/协议版本

POST /user HTTP/1.1
# POST 请求方式
# /user 请求URL(不包含域名)
# HTTP/1.1 请求协议版本

请求头:键值对

user-agent: Mozilla/5.0 # 产生请求的浏览器信息
accept: application/json # 表示客户端希望接受的数据类型
Content-Type: application/x-www-form-urlencoded # 客户端发送的实体数据格式
Host: 127.0.0.1 # 请求的主机名(IP)

请求空行:空格换行

请求主体:请求携带的数据

    post请求:Form Data

    get请求:Query String Parameters

    全是:键=值&键=值

# GET 请求是没有请求体数据的

# POST 请求才有请求体数据

 响应要遵循响应报文的要求

响应行:协议版本/状态码/状态描述

    状态码:

        1开头 - 正在请求中

        2开头 - 各种成功

            200 ok

        3开头 - 缓存/跳转 相关

            304 缓存

        4开头 - 客户端有错误

            403 没有权限

            404 url写错了

        5开头 - 服务器有错误

            500 服务器内部错误

响应头:

响应主体:单独在response中,可以有preview提前查看好看的格式

第三步:断开连接

跨域问题:

浏览器为了安全 - 同源策略

 同源策略:ajax请求,只能请求到同源的服务器

 我的网址地址:   http://1.2.3.4/index.html - http://1.2.3.4/data.json

 同源:协议相同且端口号相同且域名相同

 有些默认端口号,浏览器会省略;http协议,默认使用80端口,https默认使用443端口

 浏览器碰到ajax在访问不同源的地址,就会报错 - 目标上没有  header

 访问不同源的地址 - 跨域

 1.jsonp跨域:利用标签属性,发送请求的时候不需要考虑同源策略

 使用get请求:

①输入网址敲回车

②a标签跳转

③form默认提交

④location.href

⑤link标签引入css文件

⑥script引入js - script会把请求回来的内容当做js代码解析

⑦img引入图片

⑧iframe标签引入别的网页

 2.cors跨域:同源策略报错的时候,提示 在目标源文件中没有一个 "" header 

 给目标源文件中设置允许跨域的header就好了

 允许跨域的响应头 ---  Access-Control-Allow-Origin:*

 3.proxy跨域:利用服务器做代理

 打开文件就使用服务器环境打开,可以配置自己的服务器,代替ajax请求到不同源的地址

 浏览器只是客户端,限制不了服务器

4.

1.安装phpstudy - 安装目录中不能有空格和中文

2.打开安装目录中的 D:\phpStudy\PHPTutorial\nginx\conf\nginx.conf文件

    在83行添加一下配置:

    location 自定义地址 {

        proxy_pass  目标地址;

    }

    location /abcd {

        proxy_pass  https://www.duitang.com/napi/blog/list/by_filter_id/;

    }

3.重新启动服务器

4.自己在 D:\phpStudy\PHPTutorial\WWW 将这个文件中的所有文件全部删除,然后在里面写一个html文件

    在文件中给自己服务器刚刚定义好的自定义地址发送请求,服务器就会帮我们代理请求到目标服务器

5.打开自己文件: http://localhost/写的文件名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值