
WEB 后端开发
文章平均质量分 50
WEB 后端开发相关知识,从J2EE规范, Spring全家桶,到Spring Cloud等。
Tom098
工作20年的IT老鸟,做过开发,也做过技术支持,丰富操作系统、网络等IT infurstructure 方面实战经验。精通Java/J2EE技术体系以及Linux下用户空间c编程。下一步该如何走? AI、大数据?
展开
-
CSRF与CORS
CSRF与CORS没有直接的联系。在CSRF攻击时,不是通过跨域访问来攻击的,比如从恶意B网站下载的javascript执行时,访问正常网站A,不是这样的。一般是从恶意网站B下载的网页里边有一个超级链接,链接到网站A,这是由于用户登陆过网站A,便会携带身份信息(主要是cookie),向A网站发起操作,比如银行转账等。Spring Security通过设定一个csrf_token的方式,并且这个token下次访问时,通过header、parameter、cookie的方式携带上来,这样Spring S原创 2022-05-31 18:27:04 · 869 阅读 · 0 评论 -
REST API设计
关于REST API设计是一个很大的话题,虽然网上有很多文章介绍如何设计符合REST风格的API,但是大多只是简单介绍REST API设计的一些基本原则,例举了一些非常简单的例子。但是在真实开发场景中,业务场景可能会千变万化,非常复杂,一些基本的REST设计原则很难简单到应用的我们的API设计中。这篇博客会介绍一些基本的REST API设计的知识点和注意事项,以后也会不断更新增加自己新的理解和业界的一些最佳实践。1. 在URL中,如果要包含多个单词组成的资源名称,单词之间使用中划线,不要使用驼峰和下原创 2022-04-15 17:12:00 · 701 阅读 · 0 评论 -
WEB应用程序如何保证时间处理时区的正确性?
在web应用开发中,经常将当前系统时间作为时间信息传给数据库保存,然后在后边的客户端浏览器访问时,有时会发现时间不是我们期望的时间,而是错误的时区的时间。要搞清楚这个问题,我们必须从几个方面着手去保证时间时区的正确处理。首先要明白几个问题:1. 数据库支持timestamp和timestamptz两种类型的数据,你需要了解你的数据库表字段使用的是那种类型。他们的区别具体可以参考我上篇博文:postgresql 数据库timezone设置,以及TIMESTAMPTZ和TIMESTAMP数据类型原创 2022-04-13 13:53:00 · 1241 阅读 · 0 评论 -
CSRF原理及预防
CSRF攻击原理及过程如下:1. 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;3. 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;4. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;5. 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请原创 2022-02-14 10:57:54 · 252 阅读 · 0 评论 -
HTTP 401和403区别
官方解释:HTTP 401 错误 - 未授权: (Unauthorized)HTTP 403 Forbidden - 拒绝访问看官方解释,两个好像都跟授权相关。但我们知道一个应用分为登陆和授权两部分。判断一个用户是否有权限访问某个资源,首先判断该用户是否登陆(authenticaiton),再判断他是否有权限访问某个资源(authorization)。所以这两个错误码也就对应这两种情况。如果用户登陆失败(身份验证失败,即authenticaiton失败),则服务端返回401错误。如果原创 2022-02-14 10:41:03 · 2433 阅读 · 0 评论 -
JAX-RS的ContainerRequestFilter中注入ResourceInfo, UriInfo, HttpHeaders等等request-scoped资源时,如何保证线程安全?
具体可以参考这个文档:jax rs - Request-scoped context field injections into RESTEasy singletons - Stack Overflow基本上就是在自定义的filter中注入与request相关的资源时,容器使用了代理技术, 利用了threadlocal,将这些与具体请求相关的对象放到了threadlocal变量中(一个map, key是具体的线程,value是对应的资源),这样保证Filter对象是单例的,看上去里边的field注入原创 2022-02-11 09:45:24 · 2229 阅读 · 0 评论 -
JAX-RS @Provider注解用来做什么
被@Provider注解标注的class一定都要实现一个JAX-RS规范的接口,JAX-RS runtime(比如tomcat等)会有一个对于这些接口的一个基本的实现,我们自己实现接口相当于替换了容器实现的接口,实现一些定制化的功能Providers are a simply a way of extending and customizing the JAX-RS runtime. You can think of them as plugins that (potentially) alter th原创 2022-02-09 16:57:05 · 1672 阅读 · 0 评论 -
web应用配置文件的classpath:与classpath*: 区别
(1条消息) classpath和classpath* 怎么理解?有什么区别_曾经de夜的小世界-优快云博客原创 2021-07-03 17:22:38 · 381 阅读 · 0 评论 -
搞懂http协议的content-type, Content-Encoding, Transfer-Encoding
关于他们具体的区别,请参考如下的博客,写的挺好的。https://imququ.com/post/four-ways-to-post-data-in-http.htmlhttps://imququ.com/post/content-encoding-header-in-http.htmlhttps://imququ.com/post/transfer-encoding-header-i...原创 2019-11-14 09:56:25 · 1526 阅读 · 0 评论 -
zookeeper安装
https://www.cnblogs.com/h--d/p/10269869.html转载 2019-11-27 13:54:17 · 135 阅读 · 0 评论 -
URL 重写
1. URL重写的目的。下边描述的比较好,但好像这对于java后台基于spring开发不是问题,controller中可以轻易实现读取URL 中的path variable。Changing a URL to the required format. URL rewriting allows URLs to be more easily remembered by the user. When the URL is entered into the Web server, the URL rewrite原创 2020-12-28 20:20:47 · 1231 阅读 · 0 评论 -
HTTP协议的请求类型、请求头和请求体编码方式、URL编码等
有段时间没有接触HTTP协议的各种细节了。花了半个小时快速baidu回忆一下其中的重要知识,写的有点简陋:1. HTTP协议有GET, POST, DETETE, PUT等,工八种。其中针对REST风格的请求,常用的GET, POST, PUT,DETETE对应查询、新增、修改、删除。当然这也不是绝对的。2. HTTP协议请求报文包含三部分: 请求行,请求头和请求体。其中请求行和请求头统一采用ascii编码,不然客户端,服务端通信就乱套了。而请求体的编码方式则是可以随意设置的,只要再请求头的Cont原创 2020-12-26 20:35:16 · 6029 阅读 · 0 评论 -
跨域问题
SpringBoot解决CORS跨域(@CrossOrigin)https://blog.youkuaiyun.com/w_linux/article/details/81142413跨域请求实现的其他方式https://www.cnblogs.com/princess-knight/p/9311197.html原创 2019-11-14 13:51:10 · 189 阅读 · 0 评论