A. Web:前后端http/https跨协议问题
搭建内部中台时遇到了一个很尴尬的问题:
搭建前端 使用的vue,然后产出静态文件,用nginx代理到http的地址;
搭建后端 使用的flask-restful,直接python运行,运行在http的地址;(另外吐槽下,flask-restful真心好用,但是目前资料真的太少,flask的资料多,但是作为初学者,还看不懂TAT)
内部地址 找运维大大申请了,最终运行在https的地址;
问题出现了: 前端使用http地址直接访问时没有问题,但是使用https访问时,请求后端是用ajax请求的http地址,报错
查网上的方案主要是,将后端改造,也支持https/后端通过nginx代理成http。作为新手已经看懵了,因为还得自己配置下https证书。这些解决方案我贴到下面
但是问运维大大,找到了另外一个方案:把后端也用nginx反向代理到同一个接口,ajax请求就可以用https的啦。运维大大牛逼!
这里贴一下nginx的代理配置,希望可以帮助到其他同学~
感慨下,欠的债终究要补啊。不懂的东西太多,没系统学习过注定在日后踩坑TAT
1.Nginx直接反向代理后端: https://blog.csdn.net/qq_37105358/article/details/80854559
2.Flask直接走https:
https://blog.miguelgrinberg.com/post/running-your-flask-application-over-https
3.阮一峰的SSL/TSL协议概述:
https://www.ruanyifeng.com/blog/2014/02/ssl_tls.html
B. 前端搭建本地服务器供局域网使用
作为前端开发搭建本地服务尤其重要,下边的方法三步完成服务器的搭建:
$ npm install http-server -g // 全局安装http-server
$ cd demo2 // 打开要共享的文件
$ http-server // 搭建服务
https://segmentfault.com/q/1010000003926981
C. 前端必备HTTP技能之请求头响应头格式以及请求方法简述
http协议中,客户端和服务端通过发送纯文本(ASCII)消息的方式进行通信,客户端发送请求(requests)到服务端,服务端发送响应(responses)到客户端。
请求消息格式
例子:
响应消息格式
例子:
为了标识特定资源需要特定的行为访问,HTTP协议定义了多种请求方法。这种特定资源是什么样的,是已有的数据,还有动态生成的?主要依赖于服务端实现。通常来说这种资源对应一个文件或者属于服务端的一个可执行输出。
HTTP/1.0规范定义三种请求方法:GET, POST, HEAD。HTTP/1.1规范又增加了五种:OPTIONS, PUT, DELETE, TRACE,CONNECT。
在规范中定义的这些请求方法是语义化的,并且是可依赖的。任何客户端都可以使用任何请求方法,服务端也可以配置成支持任何这些请求方法的组合。
实际上这些请求方法可以随意定义,没有数量限制,不过你自己定义出来的请求方法会被认为是不安全并且是非幂等的。
总结 :这些请求方法本质上没有区别,最终都是TCP请求,唯一的区别就是每个请求方法,使用的时候,规范规定的使用格式不同,原则上必须按照规范规定的格式使用,其实也可以违反规范使用,比如你可以使用GET方法请求数据,也可以使用GET方法提交数据,当然你可以用POST方法提交数据,也可以用POST方法获取数据。
做好前端开发必须对HTTP的相关知识有所了解,所以我创建了一个专题 前端必备HTTP技能 专门收集前端相关的HTTP知识,欢迎关注,投稿。
D. Web前端开发者应该要懂的HTTP协议!
HTTP协议是构建在TCP/IP协议之上的,是TCP/IP协议的一个子集,所以要理解HTTP协议,要先了解下TCP/IP协议相关的知识。TCP/IP协议族是由一个四层协议组成的系统,这四层分别为:应用层、传输层、网络层和数据链路层。分层的好处是把各个相对独立的功能解耦,层与层之间通过规定好的接口来通信。如果以后需要修改或者重写某一个层的实现,只要接口保持不变也不会影响到其他层的功能。
如何理解HTTP与TCP/IP、DNS的关系呢?
当客户端访问Web站点时,首先会通过DNS服务查询到域名的IP地址。然后浏览器生成HTTP请求,并通过TCP/IP协议发送给Web服务器。Web服务器接收到请求后会根据请求生成响应内容,并通过TCP/IP协议返回给客户端。
相比于HTTP/1.1的不足,HTTP/2和HTTP/3各有哪些优势呢?
HTTP/1.1有两个主要的缺点:安全不足和性能不高。
HTTP/2完全兼容HTTP/1,是“更安全的HTTP、更快的HTTPS",头部压缩、多路复用等技术可以充分利用带宽,降低延迟,从而大幅度提高上网体验;
QUIC基于UDP实现,是HTTP/3中的底层支撑协议,该协议基于UDP,又取了TCP中的精华,实现了即快又可靠的协议。
以上就是环球青藤小编关于HTTP协议的相关内容分享,希望对大家有所帮助,想要了解更多相关内容,欢迎关注本平台!
E. 前端搭建本地服务器
前端使用vscode编辑器,安装live serve插件
然后在vscode编辑器的右下角有 Go live 按钮,点击自动启动本地服务器
右键,使用Live Server打开;
1. 安装node.js;
2. 安装http-server
http-server详细介绍,包括参数等: https://www.npmjs.com/package/http-server
在命令行中安装到全局(-g表示安装到全局,之后所有文件夹路径下输入http-server都可以使用):
操作: 运行cmd + 输入以下命令:npm install http-server -g (可能会出现权限问题,在npm前加上sudo)
3. 开启服务
进入目标文件夹(也就是需要启动服务的文件夹),shfit+右键 —— “在此处打开Powershell窗口”,输入如下命令:
hs -o (等同于 http-server -open)
本地服务器就启动起来了,默认端口为8080。
遇到问题:端口被占用,修改端口:hs -o -p 8888
完毕!!
1、安装全局anywhere,npm install anywhere -g
2、cmd中进入要启动本地服务器的静态文件夹,执行命令:anywhere;
3、anywhere的网址: https://www.npmjs.com/package/anywhere
F. 自己搭建的HTTP网站404怎么办一直不会搞
出现404,说明路径不对,或者路径对应文件夹中没有默认访问文件,新建一个默认访问文件在文件夹中就行。
G. web前端开发关于后端语言,http协议的问题
HTTP协议没必要专门学,你只要知道一点,知道几个关键的返回状态码就行了
比如200、404等
很多框架都封装好了,你只要知道在前端怎么把请求和数据发给后台的指定方法就行了
如果你学的是web前端,那后台的接口都已经写好了,你要做的就是从前端把后台需要的数据传给后台就可以了
希望能帮助到你,望采纳