怎么用word做一个网站,品牌高端网站建设,建设工程中标查询,北京网络公司哪家好说说 HTTP 常用的状态码及其含义#xff1f;
HTTP 状态码首先应该知道个大概的分类#xff1a;
1XX#xff1a;信息性状态码2XX#xff1a;成功状态码3XX#xff1a;重定向状态码4XX#xff1a;客户端错误状态码5XX#xff1a;服务端错误状态码 301#xff1a;永久性…说说 HTTP 常用的状态码及其含义
HTTP 状态码首先应该知道个大概的分类
1XX信息性状态码2XX成功状态码3XX重定向状态码4XX客户端错误状态码5XX服务端错误状态码 301永久性移动请求的资源已被永久移动到新位置。服务器返回此响应时会返回新的资源地址。302临时性性移动服务器从另外的地址响应资源但是客户端还应该使用这个地址。
用一个比喻301 就是嫁人的新垣结衣302 就是有男朋友的长泽雅美。
HTTP 有哪些请求方式 其中POST、DELETE、PUT、GET 的含义分别对应我们最熟悉的增、删、改、查。
说⼀下 GET 和 POST 的区别
可以从以下几个方面来说明 GET 和 POST 的区别 从 HTTP 报文层面来看GET 请求将信息放在 URLPOST 将请求信息放在请求体中。这一点使得 GET 请求携带的数据量有限因为 URL 本身是有长度限制的而 POST 请求的数据存放在报文体中因此对大小没有限制。而且从形式上看GET 请求把数据放 URL 上不太安全而 POST 请求把数据放在请求体里想比较而言安全一些。从数据库层面来看GET 符合幂等性和安全性而 POST 请求不符合。这个其实和 GET/POST 请求的作用有关。按照 HTTP 的约定GET 请求用于查看信息不会改变服务器上的信息而 POST 请求用来改变服务器上的信息。正因为 GET 请求只查看信息不改变信息对数据库的一次或多次操作获得的结果是一致的认为它符合幂等性。安全性是指对数据库操作没有改变数据库中的数据。从其他层面来看GET 请求能够被缓存GET 请求能够保存在浏览器的浏览记录里GET 请求的 URL 能够保存为浏览器书签。这些都是 POST 请求所不具备的。缓存是 GET 请求被广泛应用的根本他能够被缓存也是因为它的幂等性和安全性除了返回结果没有其他多余的动作因此绝大部分的 GET 请求都被 CDN 缓存起来了大大减少了 Web 服务器的负担。
GET 的长度限制是多少
HTTP 中的 GET 方法是通过 URL 传递数据的但是 URL 本身其实并没有对数据的长度进行限制真正限制 GET 长度的是浏览器。
例如 IE 浏览器对 URL 的最大限制是 2000 多个字符大概 2kb 左右像 Chrome、Firefox 等浏览器支持的 URL 字符数更多其中 FireFox 中 URL 的最大长度限制是 65536 个字符Chrome 则是 8182 个字符。
这个长度限制也不是针对数据部分而是针对整个 URL
每个服务器都有一个进程它不断监听 TCP 的端口 80以便发现是否有浏览器向它发出连接建立请求监听到连接请求就会建立 TCP 连接浏览器向服务器发出浏览某个页面的请求服务器接着就返回所请求的页面作为响应最后释放 TCP 连接
在浏览器和服务器之间的请求和响应的交互必须按照规定的格式和遵循一定的规则这些格式和规则就是超文本传输协议 HTTP。
HTTP 请求的过程与原理 每个服务器都有一个进程它不断监听 TCP 的端口 80以便发现是否有浏览器向它发出连接建立请求监听到连接请求就会建立 TCP 连接浏览器向服务器发出浏览某个页面的请求服务器接着就返回所请求的页面作为响应最后释放 TCP 连接
在浏览器和服务器之间的请求和响应的交互必须按照规定的格式和遵循一定的规则这些格式和规则就是超文本传输协议 HTTP
URI 和 URL 有什么区别?
URI统一资源标识符(Uniform Resource Identifier URI)标识的是 Web 上每一种可用的资源如 HTML 文档、图像、视频片段、程序等都是由一个 URI 进行标识的。URL统一资源定位符Uniform Resource Location)它是 URI 的一种子集主要作用是提供资源的路径。
它们的主要区别在于URL 除了提供了资源的标识还提供了资源访问的方式。这么比喻URI 像是身份证可以唯一标识一个人而 URL 更像一个住址可以通过 URL 找到这个人——人类住址协议://地球/中国/北京市/海淀区/xx 职业技术学院/14 号宿舍楼/525 号寝/张三.男
说下 HTTP/1.01.12.0 的区别
关键需要记住 HTTP/1.0 默认是短连接可以强制开启HTTP/1.1 默认长连接HTTP/2.0 采用多路复用。
HTTP/1.0
默认使用短连接每次请求都需要建立一个 TCP 连接。它可以设置Connection: keep-alive 这个字段强制开启长连接。
HTTP/1.1
引入了持久连接即 TCP 连接默认不关闭可以被多个请求复用。分块传输编码即服务端每产生一块数据就发送一块用” 流模式” 取代” 缓存模式”。管道机制即在同一个 TCP 连接里面客户端可以同时发送多个请求。
HTTP/2.0
二进制协议1.1 版本的头信息是文本ASCII 编码数据体可以是文本或者二进制2.0 中头信息和数据体都是二进制。完全多路复用在一个连接里客户端和浏览器都可以同时发送多个请求或回应而且不用按照顺序一一对应。报头压缩HTTP 协议不带有状态每次请求都必须附上所有信息。Http/2.0 引入了头信息压缩机制使用 gzip 或 compress 压缩后再发送。服务端推送允许服务器未经请求主动向客户端发送资源
HTTP/3 了解吗
HTTP/3 主要有两大变化传输层基于 UDP、使用QUIC 保证 UDP 可靠性。
HTTP/2 存在的一些问题比如重传等等都是由于 TCP 本身的特性导致的所以 HTTP/3 在 QUIC 的基础上进行发展而来QUICQuick UDP Connections直译为快速 UDP 网络连接底层使用 UDP 进行数据传输。
HTTP/3 主要有这些特点
使用 UDP 作为传输层进行通信在 UDP 的基础上 QUIC 协议保证了 HTTP/3 的安全性在传输的过程中就完成了 TLS 加密握手HTTPS 要建⽴⼀个连接要花费 6 次交互先是建⽴三次握⼿然后是 TLS/1.3 的三次握⼿。QUIC 直接把以往的 TCP 和 TLS/1.3 的 6 次交互合并成了 3 次减少了交互次数。QUIC 有⾃⼰的⼀套机制可以保证传输的可靠性的。当某个流发⽣丢包时只会阻塞这个流其他流不会受到影响。
HTTP 如何实现长连接在什么时候会超时 什么是 HTTP 的长连接 HTTP 分为长连接和短连接本质上说的是 TCP 的长短连接。TCP 连接是一个双向的通道它是可以保持一段时间不关闭的因此 TCP 连接才具有真正的长连接和短连接这一说法。TCP 长连接可以复用一个 TCP 连接来发起多次的 HTTP 请求这样就可以减少资源消耗比如一次请求 HTML如果是短连接的话可能还需要请求后续的 JS/CSS。 如何设置长连接 通过在头部请求和响应头设置 Connection 字段指定为keep-aliveHTTP/1.0 协议支持但是是默认关闭的从 HTTP/1.1 以后连接默认都是长连接。 在什么时候会超时呢 HTTP 一般会有 httpd 守护进程里面可以设置 keep-alive timeout当 tcp 连接闲置超过这个时间就会关闭也可以在 HTTP 的 header 里面设置超时时间TCP 的 keep-alive 包含三个参数支持在系统内核的 net.ipv4 里面设置当 TCP 连接之后闲置了 tcp_keepalive_time则会发生侦测包如果没有收到对方的 ACK那么会每隔 tcp_keepalive_intvl 再发一次直到发送了 tcp_keepalive_probes就会丢弃该连接。
为什么要用 HTTPS解决了哪些问题
因为 HTTP 是明⽂传输存在安全上的风险
窃听⻛险⽐如通信链路上可以获取通信内容用户账号被盗。
篡改⻛险⽐如强制植⼊垃圾⼴告视觉污染。
冒充⻛险⽐如冒充淘宝⽹站用户金钱损失。 所以引入了 HTTPSHTTPS 在 HTTP 与 TCP 层之间加⼊了 SSL/TLS 协议可以很好的解决了这些风险
信息加密交互信息⽆法被窃取。校验机制⽆法篡改通信内容篡改了就不能正常显示。身份证书能证明淘宝是真淘宝。
所以 SSL/TLS 协议是能保证通信是安全的。