网页版postman无法发送请求

HTTP Cookies概览及其操作
一、简介
HTTP Cookies是服务器发送到用户浏览器并保存在本地的小块数据。当浏览器再次向同一服务器发送请求时,这些数据会被携带并发送到服务器上。Cookies主要用于以下几个方面:
1. 会话状态管理:如用户登录状态、购物车内容、游戏分数或其他需要记录的信息。
2. 个性化设置:例如用户自定义设置、主题等。
3. 浏览器行为:并分析用户行为等。
二、在Chrome中查看Cookies
Chrome浏览器提供了强大的工具,可以直接查看和管理Cookies。
三、Cookies的属性
1. 限制访问Cookie:
Secure标记:标记为Secure的Cookie只能通过HTTPS协议加密的请求发送,使用HTTP则无法发送(localhost例外)。
HttpOnly标记:此标记的Cookie只能通过HTTP传输,无法在客户端本地通过JavaScript访问,有助于缓解跨站点脚本(XSS)攻击。
2. Cookie的作用域:
Domain属性:指定哪些主机可以接受Cookie。如果不指定,默认为Origin,不包含子域名。指定Domain后,一般包含子域名。例如,如果Domain设为,则blog.也可以接受。
Path属性:指定哪些路径可以接受Cookie,子路径也会匹配。例如,如果Path设为/post,那么以下路径都可以匹配:/post、/post/1、/post/1/update等。
四、在Springboot中操作Cookies
1. 获取Cookies:
通过注解@CookieValue获取。例如:`@RequestMapping("/hello") public String hello(@CookieValue("foo") String fooCookie) {}`。
通过工具类WebUtils的getCookie方法获取。例如:`public static Cookie getCookie(HttpServletRequest request, String name)`。WebFlux的ServerWebExchange也能获取。
2. 返回Cookies:发送Cookies与获取相反,是从Response中添加Cookies。使用response.addCookie()方法即可。
五、发送Cookies的途径
1. 浏览器:浏览器会根据规则自动发送Cookies,无需开发人员处理。
2. Postman:在Postman工具中可以设置并发送Cookies。
3. curl命令:使用curl命令时,可以通过--cookie参数设置并发送Cookies。例如:`curl -v --cookie "key1:value1;key2:value2;" localhost:8080/`。
4. JavaScript fetch方法:在使用fetch发起请求时,可以通过credentials属性决定是否发送Cookies,以及哪些类型的Cookies可以发送。credentials属性有三个可选值:omit、same-origin和include。例如,要确保浏览器在请求中包含凭据(即使是跨域源),可以将credentials: 'include'添加到传递给fetch()方法的init对象中。例如:`fetch('', { credentials: 'include' })`。如果你只想在请求URL与调用脚本位于同一起源处时发送凭据,可以使用credentials: 'same-origin',反之则使用credentials: 'omit'。这样可以在浏览器中控制何时发送Cookies到服务器或客户端。这样可以控制跨域请求的Cookie行为并管理用户的会话状态等重要信息。这是网站开发过程中的一个基本但又重要的概念和应用方式了得啰嗦完了大家都学习到的只有广度永远找不到解决问题的细致问题的现象在不同软件中也有不少特例之前就有考虑到不然真要开了直接忘其中概念和场景难免会出现遗漏理解以后再去实现就不会踩坑。总的来说以上知识点对开发过程有很大帮助特别是涉及到用户会话管理和状态保持的部分值得花时间好好琢磨琢磨整理出来以便日后复习巩固和查阅参考。
