HTTP相关问题

目录

1.从输入URL到页面展示到底发生了什么?

2.HTTP状态码有哪些?

[2.1 2XX(成功状态码)](#2.1 2XX(成功状态码))

[2.2 3XX(重定向状态码)](#2.2 3XX(重定向状态码))

[2.3 4XX(客户端错误状态码)](#2.3 4XX(客户端错误状态码))

[2.4 5XX(服务端错误状态码)](#2.4 5XX(服务端错误状态码))

[3.HTTP 请求头中常见的字段有哪些?](#3.HTTP 请求头中常见的字段有哪些?)

4.HTTP和HTTPS有什么区别?

4.1简单介绍

4.2主要区别

4.3Https的缺点

5.HTTP1.0和HTTP1.1的区别

6.HTTP1.1和HTTP2.0有什么区别

7.HTTP2.0和HTTP3.0有什么区别?

8.URI和URL的区别是什么?

9.Cookie和Session的区别?

10.GET和POST的区别?

1.从输入URL到页面展示到底发生了什么?

  1. 首先,浏览器会根据我们输入的URL地址先在本地域名服务器(DNS)中查找,如果有缓存,则直接返回IP地址即可。

  2. 如果本地域名服务器没有缓存,则会查询本机hosts文件中看是否配有对应的IP地址,如果找到,直接返回。

  3. 如果hosts文件内也没有,则向网络中发起一个DNS查询,可采用递归或者迭代查询。去根、顶级、权威域名服务器上去查.....,查找到了返回给本地域名服务器,然后告诉给用户IP地址。

  4. 浏览器根据IP地址和端口号与目标服务器建立TCP连接,经历三次握手。

  5. 建立连接后(HTTP1.1为长连接),浏览器向服务器发送一个HTTP请求,请求获取网页的内容。

  6. 服务器收到后,处理请求,返回响应报文。

  7. 浏览器接收到后,解析HTML代码,获取里面的其他资源,图片等,再次发起HTTP请求,直到网页完全加载显示。

  8. 浏览器不需要通信时,可主动关闭TCP连接,或者等待服务器关闭请求。

2.HTTP状态码有哪些?

2.1 2XX(成功状态码)

  • 200 OK:请求被成功处理。比如我们发送一个查询用户数据的 HTTP 请求到服务端,服务端正确返回了用户数据。这个是我们平时最常见的一个 HTTP 状态码。

  • 201 Created:请求被成功处理并且在服务端创建了一个新的资源。比如我们通过 POST 请求创建一个新的用户。

  • 202 Accepted:服务端已经接收到了请求,但是还未处理。

  • 204 No Content:服务端已经成功处理了请求,但是没有返回任何内容。

2.2 3XX(重定向状态码)

  • 301 Moved Permanently:资源被永久重定向了。比如你的网站的网址更换了。

  • 302 Found:资源被临时重定向了。比如你的网站的某些资源被暂时转移到另外一个网址。

2.3 4XX(客户端错误状态码)

  • 400 Bad Request:发送的 HTTP 请求存在问题。比如请求参数不合法、请求方法错误。
  • 401 Unauthorized:未认证却请求需要认证之后才能访问的资源。
  • 403 Forbidden:直接拒绝 HTTP 请求,不处理。一般用来针对非法请求。
  • 404 Not Found:你请求的资源未在服务端找到。比如你请求某个用户的信息,服务端并没有找到指定的用户。
  • 409 Conflict:表示请求的资源与服务端当前的状态存在冲突,请求无法被处理。

2.4 5XX(服务端错误状态码)

  • 500 Internal Server Error:服务端出问题了。比如你服务端处理请求的时候突然抛出异常,但是异常并未在服务端被正确处理。
  • 502 Bad Gateway:我们的网关将请求转发到服务端,但是服务端返回的却是一个错误的响应。

3.HTTP 请求头中常见的字段有哪些?

字段 含义
Request URL 请求地址
Request Method 请求方法
status Code 请求码
Reomte Address 客户端主机的IP地址
Date 发送日期
User-Agent 浏览器身份标识字符串
Accept-Encoding 支持的编码
Accept-Language 支持的语言
scheme 访问协议http或https

4.HTTP和HTTPS有什么区别?

4.1简单介绍

HTTP:最广泛应用的网络通信协议 ,基于TCP协议,数据传输简单高效,数据传输的内容是明文

HTTPS:HTTP协议的加强版,是运行在SSL/TLS协议之上的HTTP协议,其所有传输的内容都经过加密 ,一方面保证数据的安全传输 ,另一方面对访问者增加了安全验证

注意:TLS是SSL的升级版,加密采用的是对称加密,通信双方共享唯一密钥K,这样代价比较低。由于需要保证密钥的保密性,在双方通信时,需要商量一个用于对称加密的密钥,但是密钥不能直接在网络通信道中传输,这样是不安全的,所以还需要采用一次非对称加密(公钥加密和私钥解密的方式)用来交换对称加密的密钥。关于密钥的信任性问题是靠CA证书解决的。

4.2主要区别

1.http和https都是无状态(就是交互之间没有记忆功能)的,而https是通过SSL/TLS协议加密的,传输数据更加的安全。

2.http默认使用的是80 端口,而https默认使用的是443端口。

4.3Https的缺点

1.https的TCP握手协议会更加的费时,会耗费更多服务器资源。

2.https也并不是完全安全的,可能会受到DDOS(分布式拒绝服务攻击,使被攻击的网站服务器存放大量要响应的信息,消耗资源,使得服务瘫痪)的攻击。

3.SSL证书不是免费的,安全级别越高的费用越高。

5.HTTP1.0和HTTP1.1的区别

  • 连接方式:HTTP1.0为短连接,HTTP1.1支持长连接。

  • Host头:因为DNS允许多个主机名绑定到同一个IP地址,加上Host字段就知道主机名了。

  • 响应状态码:HTTP1.1在HTTP1.0的基础上新加入了大量的状态码。

  • 加密:HTTP1.1可以支持SSL/TLS加密。

6.HTTP1.1和HTTP2.0有什么区别

  • 多路复用:HTTP2.0在同一连接上可以同时传输多个请求和响应,在处理多个请求时更加的高效。

  • 服务主动推送:HTTP2.0可以在客户端请求一个资源时,将其他相关资源一并推送给客户端,减少了客户端的请求次数。

  • 二进制帧:HTTP2.0使用二进制帧进行数据传输,相较于HTTP1.1文本格式的报文更加的高效。

注意:HTTP1.1和HTTP2.0都与HTTPS有直接关系。HTTP1.1和HTTP2.0都是HTTP协议的版本,而HTTPS是在HTTP协议的基础上加入了SSL/TLS协议进行加密的协议。因此,当使用HTTPS时,实际上是在使用HTTP协议(无论是HTTP1.1还是HTTP2.0)进行加密通信。具体来说,HTTP1.1和HTTP2.0可以与HTTPS一起使用,以提供加密和安全通信。在实际应用中,许多网站使用HTTPS来保护用户的个人信息和其他敏感数据,而HTTP1.1和HTTP2.0都可以作为HTTPS协议的一部分来使用。

7.HTTP2.0和HTTP3.0有什么区别?

  • 传输协议:HTTP2.0是基于TCP协议实现的,HTTP3.0采用了QUIC(UDP的升级版,在其基础上新增了加密、重传等功能)协议来实现可靠的传输。

  • 安全性:HTTP2.0使用TSL协议进行加密,而HTTP3.0基于QUIC协议,包含了内置的加密和身份验证机制,可以提供更强的安全性。

  • 连接建立和错误恢复:HTTP3.0相较于HTTP2.0在连接建立上更快,也有更好的错误恢复机制。

8.URI和URL的区别是什么?

  • URI是统一资源标识符,可以唯一标识一个资源,比如一张图片,一段音频。

  • URL是统一资源定位符,可以提供该资源的路径,就是如何指向这个资源。

URI准确来说是包含URL的,比如说有一张图片,他同时放在了tomcat服务器中的两个不同文件夹中,对于URI来说就是一张图片资源,而URL可以有多个,访问的文件夹路径不同,URL不同,但最终得到的就是这一张图片资源。

9.Cookie和Session的区别?

因为我学习的时候接触的是JWT,没有采用Cookie+Session这种方案,对Cookie和Session的过程只是了解。因为HTTP协议是无状态的,Session的主要作用就是通过服务端记录用户的状态,Session是在服务端的,Cookie是在客户端的,所以Cookie中不能存储敏感信息,最好是将Cookie信息加密存储然后使用到的时候再去服务器端解密。

基本认证流程如下:

10.GET和POST的区别?

  • 使用场景 :get请求一般用于获取或查询 资源,而post请求一般用于创建和修改资源。

  • 缓存:浏览器一般会对get请求进行缓存,而post请求不会缓存。

  • 安全性:如果使用HTTP协议的话,其实都不安全,因为HTTP协议本身是明文传输。但相对来说POST请求比GET请求更安全一些,因为GET请求的参数通常放在URL中。

  • 格式:GET请求的URL长度受到浏览器和服务器的限制,而POST请求的body大小没有明确的限制。

相关推荐
皮皮学姐分享-ppx7 小时前
政府绿色采购数据库(2015-2024.3)
大数据·网络·数据库·人工智能·制造
W_chuanqi7 小时前
联想M7615DNA网络打印方法
网络·联想·打印机网络连接
HavenlonLabs10 小时前
硬件 + SaaS 产品的工程化路径:从系统架构、PCB 设计到工程样机
网络·安全·架构·系统架构·安全架构
sweet丶13 小时前
MQTT消息通道-基础篇
网络协议
yychen_java14 小时前
当算法成为武器:AI泛滥时代的多维危机透视与治理路径
网络·人工智能·ai
漫途科技14 小时前
精准盯防危房隐患,智守人居安全|MTB46-4-2A 4G数据采集终端专项应用方案
网络·安全
奥利奥夹心脆芙15 小时前
辅助排查 HTTP 接口代码报错,实操完整案例分享
http
Misnearch15 小时前
抓包Packet Capture
网络·抓包
zhangfeng113315 小时前
ps aux讲解,结合国家超算中心 hpc apptainer
linux·服务器·网络
吠品16 小时前
一次 Nginx 报错 unexpected end of file 的排查记录
网络协议·https·ssl