美文网首页
2.web前端基础储备之—http

2.web前端基础储备之—http

作者: Feng_Du | 来源:发表于2021-03-30 09:51 被阅读0次

一、典型的 HTTP Client-Server协议会话阶段。

  1. 客户端建立一条 TCP 连接(如果传输层不是 TCP,也可以是其他适合的连接)。
  2. 客户端发送请求并等待应答。
  3. 服务器处理请求并送回应答,回应包括一个状态码和对应的数据。
    ps:从 HTTP/1.1 开始,连接在完成第三阶段后不再关闭,客户端可以再次发起新的请求。这意味着第二步和第三步可以连续进行数次。

二、常见http headers。

1.request headers


request ps:java后台可以用http servletRequest 获取headers信息。

2.response headers


response 图片来源于网络

三、http 状态码(response code)。

分类:

code 描述
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误

常见状态码描述:

code 英文名称 描述
100 Continue 继续。客户端应继续其请求
101 Switching Protocol 该代码是响应客户端的 Upgrade标头发送的,并且指示服务器也正在切换的协议。例如,切换到HTTP的新版本协议
200 ok 请求成功
201 Created 该请求已成功,并因此创建了一个新的资源。它通常是post或put请求后的响应
300 Multiple Choice 被请求的资源有一系列可供选择的回馈信息
301 Moved Permanently 被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一。
400 Bad Request 1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。2、请求参数有误。
401 Unauthorized 当前请求需要用户验证。
403 Forbidden 服务器已经理解请求,但是拒绝执行它。如:请求接口不存在、跨域等可能会出现此code
404 Not Found 请求失败,请求所希望得到的资源未被在服务器上发现。
500 Internal Server Error 服务器内部错误,无法完成请求
502 Bad Gateway 它表示作为网关或代理角色的服务器,从上游服务器(如tomcat、php-fpm)中接收到的响应是无效的。

四、内容安全策略( CSP )

主要威胁:跨站脚本攻击数据包嗅探攻击
防范:配置csp

五、HTTP cookies

首先我们要了解http是无状态可会话的,而Cookie 使基于无状态的HTTP协议记录稳定的状态信息成为了可能。当然Cookie也可以用于客户端信息的存储,我们可以设置cookies的有效期来控制它的生命周期(这一有效期只与客户端相关)。

  • ps
    cookies安全:
    通过设置Secure(确保是HTTPS )属性和HttpOnly(使jsapi无法访问) 属性可以确保cookies相对安全。
    cookies作用域:
    可以通过Domain 和 Path 标识定义Cookie的作用域。

六、跨域资源共享(CORS)。

CORS是为了让浏览器可以访问非同源的资源,所谓同源即:协议相同、域名(主机)相同、端口相同。
有哪些实现跨域的方案?

  • 使用JSONP。
    JSONP不使用XMLHttpRequest 来请求json数据,而是通过使用<script>标签来请求外部脚本,来实现跨域请求json数据。
    缺点:高耦合、不安全、只支持GET。

  • CORS。
    通过对http请求的首部字段判断来实现访问控制。另外在浏览器端,发起实际请求前会发起一条OPTIONS预请求(并非所有请求都会OPTIONS),服务器通过对预请求的判断(比如Origin)来决定其实际请求是否被允许。
    ps:我们可以通过预请求的Access-Control-Allow-Methods返回字段来判断可以使用的http请求方式,还可以通过Access-Control-Allow-Headers字段来得到允许携带的首部字段。

  • 代理。
    同源策略是浏览器的规则,那我们绕开就可以实现跨域。
    例:浏览器要请求在非同源服务器的数据,我们先在localhost上搭建一个请求外网服务器的代理服务器(可以通过node、nginx...实现)做数据转发,然后浏览器直接请求localhost代理服务器,即实现了跨域。

希望对学习的小伙伴有帮助。谢点赞~~转请注明连接

相关文章

  • 2.web前端基础储备之—http

    一、典型的 HTTP Client-Server协议会话阶段。 客户端建立一条 TCP 连接(如果传输层不是 TC...

  • 前端基础之HTTP

    UDP UDP的协议是面向无连接的,也就是说不需要在正式传递数据之前连接起对方。 UDP协议只是数据报文的搬运工,...

  • 学习Vue框架之前,要有JavaScript的知识储备

    前端三剑客知识储备(有关前端的专题) ☑ HTML基础知识 ☑ CSS基础知识 ☑ JavaScript5基础知识...

  • 前端http基础

    一、http协议类 HyperText Transfer Protocol,超文本传输协议。因特网上应用最为广泛的...

  • 前端知识储备基础(一)

    TCP和UDP的区别 (1)TCP 是面向连接的,udp 是无连接的即发送数据前不需要先建立链接。 (2)TCP ...

  • 前端基础篇之HTTP协议

    HTTP协议作为前端开发的重要基础知识,却是很多非计算机专业出身的码农的软肋。笔者通过《图解http》一书系统的学...

  • 前端学习链接

    综合文档 前端相关所有常用文档汇总:http://devdocs.io/ 前端基础:http://www.w3sc...

  • 4.1_实际应用

    1.移动iOS端 2.web前端 3.移动Android端 4.后端 5.设计

  • HTTP部分前端基础

    用 Chrome 浏览器,现在来呈现一次访问一个网站的场景,以访问 http://www.zhihu.com/ 为...

  • 前端之http

    前端的开发调用接口,经常会用到的就是http相关的知识点。现在我们来详细讲一下关于header的相关内容。 Gen...

网友评论

      本文标题:2.web前端基础储备之—http

      本文链接:https://www.haomeiwen.com/subject/nduwhltx.html