首页 > 其他分享 >2.HTTP、HTTPS

2.HTTP、HTTPS

时间:2023-09-19 12:56:17浏览次数:41  
标签:协议 HTTP 请求 URL HTTPS 服务器

(1)HTTP 协议介绍

  HTTP 协议,全称超文本传输协议(Hypertext Transfer Protocol)。顾名思义,HTTP 协议就是用来规范超文本的传输,超文本,也就是网络上的包括文本在内的各式各样的消息,具体来说,主要是来规范浏览器和服务器端的行为的。

并且,HTTP 是一个无状态(stateless)协议,也就是说服务器不维护任何有关客户端过去所发请求的消息。这其实是一种懒政,有状态协议会更加复杂,需要维护状态(历史信息),而且如果客户或服务器失效,会产生状态的不一致,解决这种不一致的代价更高。

 HTTP协议优点

  扩展性强、速度快、跨平台支持性好。

 

(2)HTTP协议通信过程

  HTTP 是应用层协议,它以 TCP(传输层)作为底层协议,默认端口为 80. 通信过程主要如下:

·服务器在 80 端口等待客户的请求。

·浏览器发起到服务器的 TCP 连接(创建套接字 Socket)。

·服务器接收来自浏览器的 TCP 连接。

·浏览器(HTTP 客户端)与 Web 服务器(HTTP 服务器)交换 HTTP 消息。

·关闭 TCP 连接。

 

(4)HTTPS协议

  HTTPS协议(Hyper Text Transfer Protocol Secure),是 HTTP 的加强安全版本。HTTPS 是基于HTTP的,也是用 TCP 作为底层协议,并额外使用 SSL/TLS 协议用作加密和安全认证。默认端口号是 443.

  HTTPS协议中,SSL通道常用基于密钥的加密算法,密钥长度通常是40比特或128比特。

  HTTPS 协议优点:保密性好、信任度高。

 

(5)从输入URL 到页面展示到底发生了什么?(非常重要)

类似的问题:打开一个网页,整个过程会使用哪些协议?

总体来说分为以下几个过程:

DNS 解析、TCP 连接、发送 HTTP 请求、服务器处理请求并返回 HTTP 报文、浏览器解析渲染页面、连接结束。

 上图有一个错误,请注意,是 OSPF 不是 OPSF。 OSPF(Open Shortest Path First,ospf)开放最短路径优先协议, 是由 Internet 工程任务组开发的路由选择协议

 dns解析过程是怎样的

  当需要将一个主机域名映射为IP地址时,就调用域名解析函数,解析函数将待转换的域名放在DNS请求中,以UDP报文方式发给本地域名服务器。本地的域名服务器查到域名后,将对应的IP地址放在应答报文中返回。同时域名服务器还必须具有连向其他服务器的信息以支持不能解析时的转发。若域名服务器不能回答该请求,则此域名服务器就暂成为DNS中的另一个客户,向根域名服务器发出请求解析,根域名服务器一定能找到下面的所有二级域名的域名服务器,这样以此类推,一直向下解析,直到查询到所请求的域名。

 

 

 

(6)HTTP 状态码有哪些?

HTTP 状态码用于描述 HTTP 请求的结果,比如2xx 就代表请求被成功处理。

 

 

 

 

(7)HTTP 和 HTTPS 有什么区别?(重要)

·端口号:HTTP默认是80,HTTPS默认是443。

·URL前缀:HTTP的URL前缀是http://,HTTPS的URL前缀是https://。

·安全性和资源消耗 :HTTP协议运行在TCP之上,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。HTTPS 是运行在 SSL/TLS 之上的 HTTP 协议,SSL/TLS 运行在 TCP 之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。所以说,HTTP 安全性没有 HTTPS 高,但是 HTTPS 比 HTTP 耗费更多服务器资源。

 

(8)HTTP 1.0 和 HTTP 1.1 有什么区别?

·连接方式 : HTTP 1.0 为短连接,HTTP 1.1 支持长连接。

·状态响应码 : HTTP/1.1中新加入了大量的状态码,光是错误响应状态码就新增了24种。比如说,100 (Continue)——在请求大资源前的预热请求,206 (Partial Content)——范围请求的标识码,409 (Conflict)——请求与当前资源的规定冲突,410 (Gone)——资源已被永久转移,而且没有任何已知的转发地址。

·缓存处理 : 在 HTTP1.0 中主要使用 header 里的 If-Modified-Since,Expires 来做为缓存判断的标准,HTTP1.1 则引入了更多的缓存控制策略例如 Entity tag,If-Unmodified-Since, If-Match, If-None-Match 等更多可供选择的缓存头来控制缓存策略。

带宽优化及网络连接的使用 :HTTP1.0 中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1 则在请求头引入了 range 头域,它允许只请求资源的某个部分,即返回码是 206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。

·Host头处理 : HTTP/1.1在请求头中加入了Host字段。

 

(9) HTTP 是不保存状态的协议, 如何保存用户状态?

HTTP 是一种不保存状态,即无状态(stateless)协议。也就是说 HTTP 协议自身不对请求和响应之间的通信状态进行保存。那么我们保存用户状态呢?Session 机制的存在就是为了解决这个问题,Session 的主要作用就是通过服务端记录用户的状态。典型的场景是购物车,当你要添加商品到购物车的时候,系统不知道是哪个用户操作的,因为 HTTP 协议是无状态的。服务端给特定的用户创建特定的 Session 之后就可以标识这个用户并且跟踪这个用户了(一般情况下,服务器会在一定时间内保存这个 Session,过了时间限制,就会销毁这个 Session)。

在服务端保存 Session的方法很多,最常用的就是内存和数据库(比如是使用内存数据库 redis 保存)。既然 Session 存放在服务器端,那么我们如何实现 Session 跟踪呢?大部分情况下,我们都是通过在 Cookie 中附加一个 Session ID 来方式来跟踪。

 

(10)Cookie 被禁用怎么办?

最常用的就是利用 URL 重写把 Session ID 直接附加在 URL 路径的后面。

(11) URI 和 URL 的区别是什么?

URI(Uniform Resource Identifier) 是统一资源标志符,可以唯一标识一个资源。

URL(Uniform Resource Locator) 是统一资源定位符,可以提供该资源的路径。它是一种具体的 URI,即 URL 可以用来标识一个资源,而且还指明了如何 locate 这个资源。

URI的作用像身份证号一样,URL的作用更像家庭住址一样。URL是一种具体的URI,它不仅唯一标识资源,而且还提供了定位该资源的信息。

标签:协议,HTTP,请求,URL,HTTPS,服务器
From: https://www.cnblogs.com/cjhtxdy/p/17714340.html

相关文章

  • SpringBoot 后端配置 Https 教程
    以阿里云为例子1.申请SSL证书1.注册域名打开阿里云官网,搜索域名点击域名注册,输入域名,点击搜索选择心仪的域名,点击购买,打钱进入域名控制台,进行实名认证2.申请SSL证书打开阿里云官网,搜索SSL证书点击免费证书,领取20张券(一年可以领20张,可以创建20张免......
  • HttpClient MultipartFormDataContent
    varfileStream=newMemoryStream(fileContent);varparametersList=newMultipartFormDataContent{{newStringContent(folderName),"FolderName"},{newStringContent(fileNam......
  • HTTP请求
    okHttp发送表单请求需要添加依赖compilegroup:'com.squareup.okhttp3',name:'okhttp',version:'4.9.0'importokhttp3.FormBody;importokhttp3.OkHttpClient;importokhttp3.Request;importokhttp3.RequestBody;importokhttp3.Response;......
  • Harbor部署(HTTP版)
    下载安装包在harbor版本下载需要的在线或离线安装包下载安装包以离线安装包为例wgethttps://github.com/goharbor/harbor/releases/download/v2.8.2/harbor-offline-installer-v2.8.2.tgz解压tar-zxvfharbor-offline-installer-v2.8.2.tgzharbor/harbor.v2.8......
  • HttpClient采集页面数据
    1、导入相关依赖<!--https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-client--><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>3.3.0</version&......
  • Django如何http接收+返回docx文件,文件名中文
     fromdjango.utils.encodingimportescape_uri_pathfromdjango.httpimportHttpResponse view中函数:filepath="文件路径"withopen(filepath,'rb')asf:content=f.read()response=HttpResponse(conte......
  • HTTP静态、动态住宅ip代理和数据中心代理是什么?有什么区别?
    随着时代的进步和互联网的发展,互联网中大部分企业的业务中可能需要用到代理ip。其中不仅有静态住宅ip代理和动态住宅ip代理还有数据中心代理,这些代理是什么?住宅ip代理和数据中心代理有什么异同点?小编接下来就跟大家介绍一下什么是住宅代理;什么是静态代理ip;什么是动态代理ip;什么是数......
  • 关于getClass().getClassLoader().getResourceAsStream——转载自https://www.cnblogs
    关于getClass().getClassLoader().getResourceAsStreamInputStreamis=getClass().getClassLoader().getResourceAsStream("helloworld.properties");getClass():取得当前对象所属的Class对象getClassLoader():取得该Class对象的类装载器类装载器负责从Java字符文件将字符流读......
  • 高匿HTTP能被地图识别嘛
    不知道大家有没有试过高匿HTTP在使用地图时到底能不能识别呢?今天,我就来探讨一下这个话题。首先,让我们来看看高匿HTTP是什么。高匿HTTP是一种可以隐藏你真实IP地址的HTTP服务,它会为你的网络请求提供一个虚拟的IP地址,让你在互联网上变得更加安全。但是,有人会问,既然高匿HTTP可以隐藏真......
  • Microsoft Edge浏览器如何设置HTTP代理
    当使用MicrosoftEdge浏览器时,你可以通过以下步骤设置代理IP,让浏览器使用代理服务器进行网络请求。步骤一:打开MicrosoftEdge浏览器设置在浏览器中点击右上角的菜单按钮(通常是三个水平点或者更多选项),然后选择"Settings"或者"设置"选项。步骤二:进入网络设置在浏览器设置界面中,向下滚......