Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >浅学计网:HTTP

浅学计网:HTTP

原创
作者头像
传说之下的花儿
发布于 2023-11-19 10:22:08
发布于 2023-11-19 10:22:08
28400
代码可运行
举报
运行总次数:0
代码可运行

四、HTTP

4.1 什么是HTTP协议

HTTP (Hypertext Transfer Protocol) 协议是对 客户端和服务器端 之间数据之间实现可靠性的传输 文字、图片、音频、视频等超文本数据的规范,格式简称为“超文本传输协议“。HTTP 协议属于应用层,及用户访问的第一层就是HTTP。简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。

HTTP(Hypertext Transfer Protocol,超文本传输协议):主要用于普通浏览。

  • HTTP 默认工作在 TCP 协议 80端口,用户访问网站 http:// 打头的都是标准 HTTP 服务。
  • HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

4.2 Socket和HTTP的区别和应用场景

  • Socket连接就是所谓的长连接,理论上客户端和服务器端一旦建立起连接将不会主动断掉; Socket适用场景:网络游戏,银行持续交互,直播,在线视屏等。
  • HTTP连接就是所谓的短连接,即客户端向服务器端发送一次请求,服务器端响应后连接即会断开,并等待下次连接。 HTTP适用场景:公司OA服务,互联网服务,电商,办公,网站等。

4.3 HTTP的请求与响应

4.3.1 HTTP请求

HTTP请求报文主要由 请求行、请求头部、请求正文(请求体)3部分组成:

  1. 请求行: 由3部分组成,分别为:请求方法、URL以及协议版本,之间由空格分隔。
    • 请求方法包括:GET、PUT、POST、DELETE、OPTIONS、HEAD、TRACE以及扩展方法,当然并不是所有的服务器都实现了所有的方法,部分方法即便支持,处于安全性的考虑也是不可用的。
    • 协议版本的格式为:HTTP/主版本号.次版本号,常用的有HTTP/1.0和HTTP/1.1
  2. 请求头部: 请求头部为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔。 常见请求头如下: 请求头说明Host接受请求的服务器地址,可以是IP:端口号,也可以是域名User-Agent发送请求的应用程序名称Connection指定与连接相关的属性,例如:Connection:Keep-AliveAccept-Charset通知服务端可以发送的编码格式Accept-Encoding通知服务端可以发送的数据压缩格式Accept-Language通知服务端可以发送的语言请求头部的最后会有一个空行,表示请求头部结束,接下来为请求正文,这一行非常重要,必不可少。
  3. 请求正文: 可选部分,比如GET请求就没有请求正文。
    • GET请求示例:

4.3.2 HTTP响应
1. 响应

HTTP响应报文主要由状态行、响应头部、响应正文3部分组成:

  1. 状态行: 由3部分组成,分别为:协议版本,状态码,状态码描述,之间由空格分隔。
    • 状态码为3位数字,200~299的状态码表示成功,300~399的状态码指资源重定向,400~499的状态码指客户端请求出错,500~599的状态码指服务端出错(HTTP/1.1向协议中引入了信息性状态码,范围为100~199)。 这里列举几个常见的: 状态码说明200响应成功301永久移动,请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。302暂时重定向,服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。304缓存文件并未过期,还可继续使用,无需再次从服务端获取400客户端请求有语法错误,不能被服务器识别401请求需要认证403权限不足,无法对该资源进行访问404请求资源不存在500服务器内部错误503(服务器内部错误) 服务器遇到错误,无法完成请求。502网关错误504网关超时
  2. 响应头: 与请求头部类似,为响应报文添加了一些附加信息。 常见响应头部如下: 响应头说明Server服务器应用程序软件的名称和版本Content-Type响应正文的类型(是图片还是二进制字符串)Content-Length响应正文长度Content-Charset响应正文使用的编码Content-Encoding响应正文使用的数据压缩格式Content-Language响应正文使用的语言
2. 302和301区别

共同点:301和302状态码都表示重定向,就是说浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址,这个地址可以从响应的Location首部中获取(用户看到的效果就是他输入的地址A瞬间变成了另一个地址B)。

不同点:301表示旧地址A的资源已经被永久地移除了(这个资源不可访问了),搜索引擎在抓取新内容的同时也将旧的网址交换为重定向之后的网址;302表示旧地址A的资源还在(仍然可以访问),这个重定向只是临时地从旧地址A跳转到地址B,搜索引擎会抓取新的内容而保存旧的网址。 SEO中302好于301。

4.4 HTTPS

HTTPS(HTTP over SSL,安全超文本传输协议):HTTP协议的安全版本。

  • HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。
  • HTTPS 默认工作在 TCP 协议443端口,它的工作流程一般如以下方式:
    1. TCP 三次同步握手
    2. 客户端验证服务器数字证书
    3. DH 算法协商对称加密算法的密钥、hash 算法的密钥
    4. SSL 安全加密隧道协商完成
    5. 网页以加密的方式传输,用协商的对称加密算法和密钥加密,保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改。
4.4.1 工作原理

我们都知道 HTTPS 能够加密信息,以免敏感信息被第三方获取,所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用 HTTPS 协议。

  1. 客户端发起 HTTPS 请求: 这个没什么好说的,就是用户在浏览器里输入一个 https 网址,然后连接到 server 的 443 端口。
  2. 服务端的配置: 采用 HTTPS 协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面(startssl 就是个不错的选择,有 1 年的免费服务)。 这套证书其实就是一对公钥和私钥,如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。
  3. 传送证书: 这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。
  4. 客户端解析证书: 这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。 如果证书没有问题,那么就生成一个随机值,然后用证书对该随机值进行加密,就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。
  5. 传送加密信息: 这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。
  6. 服务端解密信息: 服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密,所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。
  7. 传输加密后的信息: 这部分信息是服务段用私钥加密后的信息,可以在客户端被还原。
  8. 客户端解密信息: 客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容,整个过程第三方即使监听到了数据,也束手无策。

4.5 HTTP和HTTPS的区别

  • 传输: HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。
  • 证书: 使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。 证书颁发机构如:Symantec、Comodo、GoDaddy 和 GlobalSign 等。
  • 页面响应速度: HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。
  • 端口 HTTP和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。
  • 耗费资源 HTTPS 其实就是建构在 SSL/TLS 之上的 HTTP 协议,所以,要比较 HTTPS 比 HTTP 要更耗费服务器资源。

4.6 一次完整的HTTP请求

一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤:

  1. 建立TCP连接: 怎么建立连接的,看上面的三次握手。
  2. Web浏览器 向 Web服务器 发送请求行: 一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令。例如:GET /sample/hello.jsp HTTP/1.1
  3. Web浏览器发送请求头: 浏览器发送其请求命令之后,还要以头信息的形式向Web服务器发送一些别的信息。 之后浏览器发送 了一空白行来通知服务器,它已经结束了该头信息的发送。
  4. Web服务器响应状态行: 客户机向服务器发出请求后,服务器会客户机回送响应,HTTP/1.1 200 OK,应答的第一部分是协议 的版本号和应答状态码。
  5. Web服务器发送响应头: 正如客户端会随同请求发送关于自身的信息一样,服务器也会随同响应向用户发送关于它自己的数据及被请求的文档。
  6. Web服务器向浏览器发送数据(响应体): Web服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据
  7. Web服务器关闭TCP连接

4.6 ❤从输入址到获得页面的过程

4.6.1 简介版本
  1. 浏览器根据请求的 URL 里的域名进行 DNS域名解析,找到真实 IP ,向服务器发起请求
  2. 服务器接收到这个请求,并根据路径参数映射到特定的请求处理器进行处理,并将处理结果及相应的视图返回给浏览器;
  3. 浏览器解析并渲染视图,若遇到对 js 文件、css 文件及 图片 等静态资源的引用,则重复上述步骤并向服务器请求这些资源;
  4. 浏览器根据其请求到的资源、数据渲染页面,最终向用户呈现一个完整的页面。
4.6.2 详细版本
  1. 在浏览器地址栏输⼊URL
  2. 浏览器查看缓存,如果请求资源在缓存中并且新鲜(未过期),跳转到转码步骤。
    • 如果资源未缓存,发起新请求
    • 如果已缓存,检验是否⾜够新鲜,⾜够新鲜直接提供给客户端,否则与服务器进⾏验证。
      • 检验新鲜通常有两个HTTP头进⾏控制 ExpiresCache-Control
        • HTTP1.0提供 Expires,值为⼀个绝对时间表示缓存新鲜⽇期。
        • HTTP1.1增加了Cache-Control: max-age=time,值为以秒为单位的最⼤新鲜时间。
  3. 浏览器解析URL获取协议,主机,端⼝,path
  4. 浏览器组装⼀个HTTP(GET)请求报⽂
  5. 浏览器获取主机 ip 地址,过程(获取域名对应的IP地址)如下:
    1. 浏览器缓存: 浏览器会缓存DNS记录一段时间。 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定的一个时间(2分钟到30分钟不等)。
    2. 系统缓存: 如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用(windows里是gethostbyname)。 这样便可获得系统缓存中的记录。 这里也可以是hosts缓存:hosts⽂件
    3. 路由器缓存: 接着,前面的查询请求发向路由器,它一般会有自己的DNS缓存。
    4. ISP 的 DNS 缓存(本地DNS服务器,相当于一个大的 hosts 文件): 接下来要检查的就是 ISP缓存DNS 的服务器。在这一般都能找到相应的缓存记录。
    5. 根域名服务器: ISP 的 DNS 服务器还找不到的话,它就会向根服务器发出请求,进行递归查询 (例如:www.baidu.com ,DNS 服务器先问根域名服务器.com 域名服务器的 IP 地址,然后再问.baidu域名服务器,依次类推)

  1. 打开⼀个socket与 ⽬标IP地址、端口建立TCP连接,三次握手:
    1. 客户端向服务端发送SYN。 A:喂,听得到吗?
    2. 服务端返回SYN和ACK。 B:听得到,你可以听到我说话吗?
    3. 客户端返回ACK。 A:听到了,我们可以开始正常交流了
  2. TCP链接建⽴后发送HTTP请求
  3. 服务器接收到这个请求,并根据路径参数映射到特定的请求处理器进行处理,并将处理结果及相应的视图返回给浏览器;
  4. 浏览器解析并渲染视图,若遇到对 js 文件、css文件及图片等静态资源的引用,则重复上述步骤并 向服务器请求这些资源;
  5. 浏览器根据其请求到的资源、数据渲染页面,最终向用户呈现一个完整的页面,然后根据情况选择关闭TCP连接或者保留重⽤,四次挥手:
    1. 客户端与服务器交谈结束之后,客户端要结束此次会话,就会对服务器说:我要关闭连接了(第一次挥手)。
    2. 服务器收到客户端的消息后说:好的,知道你要关闭连接了。(第二次挥手)
    3. 然后服务器确定了没有话要和客户端说了,服务器就会对客户说,我要关闭连接了。(第三次挥手)
    4. 客户端收到服务器要结束连接的消息后说:已收到你要关闭连接的消息。(第四次挥手),才关闭。

4.7 GET 与 POST区别

  • 目的: GET重点在从服务器上获取资源, POST 重点在向服务器发送数据。
  • 传输数据量: GET传输的数据量小,因为受URL长度限制,但效率较高; POST 可以传输大量数据,所以上传文件时只能用Post方式;
  • 安全性: GET 是不安全的,因为 GET 请求发送数据是在URL上,是可见的,可能会泄露私密信息, 如密码等; POST 是放在请求头部的,是安全的。

4.8 说下 HTTP/1.0,1.1,2.0 的区别

思路:这道题主要考察的知识点是 HTTP 几个版本的区别,我们记住HTTP/1.0默认是短连接,可以强制开启,HTTP/1.1 默认长连接,HTTP/2.0 采用多路复用就差不多啦。

  • HTTP/1.0:
    • 早先1.0的HTTP版本,是一种无状态无连接的应用层协议。
    • 默认使用短连接,每次请求都需要建立 TCP 连接。服务完成立即断开(无连接),服务器不跟踪每个客户端也不记录过去的请求(无状态),开销大。
    • 不支持断点续传。它可以设置Connection: keep-alive 这个字段,强制开启长连接
  • HTTP/1.1:
    • 长连接: 默认长连接,只要客户端服务端任意一端没有明确提出断开TCP连接,就一直保持连接,可以发送多次HTTP请求(可以被多个请求复用)。
    • 管线化: 同一个 TCP 连接里面,客户端可以同时发出多个HTTP请求,而不用一个个等待响应。
    • 断点续传(分块传输): 指的是在上传/下载时,将任务(一个文件或压缩包)人为的划分为几个部分,每一个部分采用一个线程进行上传/下载,如果碰到网络故障,可以从已经上传/下载的部分开始继续上传/下载未完成的部分,而没有必要从头开始上传/下载。可以节省时间,提高速度。 即服务端每产生一块数据,就发送一块,用” 流模式” 取代” 缓存模式”。
  • HTTP/2.0:
    • 二进制分帧: 1.1 版本的头信息是文本(ASCII 编码),数据体可以是文本或者二进制。 2.0 中,头信息和数据体都是二进制,实现方便,健壮性更好。
    • 首部压缩: HTTP 协议不带有状态,每次请求都必须附上所有信息。 Http/2.0 引入了头信息压缩机制,使用 gzip 或 compress 压缩后再发送,同时通信的双方各自缓存一份header fields表,避免了header的重复传输。
    • 多路复用: 在一个连接里,客户端和浏览器都可以同时发送多个请求或响应,而且不用按照顺序一一对应。
    • 服务器推送: 允许服务器未经请求,主动向客户端发送资源。

4.9 对称加密与非对称加密

  • 对称加密: 对称密钥加密是指加密和解密使用同一个密钥的方式,这种方式存在的最大问题就是密钥发送问题,即如何安全地将密钥发给对方(现实中通常的做法是将对称加密的密钥进行非对称加密,然后传送给需要它的人)
  • 非对称加密: 非对称加密是指使用一对非对称密钥,即公钥和私钥,公钥可以随意发布,但私钥只有自己知道。发送密文的一方使用对方的公钥进行加密处理,对方接收到加密信息后,使用自己的私钥进行解密。 由于非对称加密的方式不需要发送用来解密的私钥,所以可以保证安全性。但是和对称加密比起来,非常的慢。 例如: A:私钥A,公钥A B:私钥B,公钥B 公钥只能用来加密,A,B交换公钥,就可以达到A通过自己的私钥A解密B使用公钥A加密的内容,B同理。

4.10 Cookie和Session

HTTP协议本身是无法判断用户身份。所以需要Cookie或者Session。

  • Cookie: Cookie是由Web服务器保存在 用户浏览器 上的文件(key-value格式),可以包含用户相关的信息。客户端向服务器发起请求,就提取浏览器中的用户信息由http发送给服务器。
  • Session: Session是浏览器和服务器会话过程中,后端服务器会分配的一块储存空间给Session。 服务器默认为客户浏览器的cookie中设置 sessionid,这个sessionid就和cookie对应,浏览器在向服务器请求过程中传输的cookie包含 sessionid,服务器根据传输cookie中的 sessionid获取会话中存储的信息,然后确定会话的身份信息。
4.10.1 二者区别:
  • 存放范围不同: Cookie数据存放在客户端上,安全性较差,Session数据放在服务器上,安全性相对更高。
  • 存储大小不同: 单个cookie保存的数据不能超过4K,session无此限制。
  • 支持存储类型不同: 存取方式的不同,Cookie 只能保存 ASCII,Session 可以存任意数据类型,一般情况下我们可以在 Session 中保存一些常用变量信息,比如说 UserId 等。
  • 有效期不同: Cookie 可设置为长时间保持,比如我们经常使用的默认登录功能,Session 一般失效时间较短,客户端关闭或者 Session 超时都会失效。

4.11 URL、URI、URN

4.11.1 URL

URL全名为Uniform Resource Locator(统一资源定位),通过描述资源的位置来标识资源。也许这个扩展名称听起来很奇怪,但你可以简单地称之为地址

同样,你可以把URL定义为一个字符串,表示互联网上某一资源的位置:一个网页、一张图片、一个邮箱等等。

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 https://jwt.io
 https://auth0.com/docs/get-started#learn-the-basics
 https://identicons.dev/static/icons/mono/png/icon-access-token.png
 mailto:yourfriend@somewhere.com
 ftp://ftpserver.com/myfolder

URL的剖析

一个URL由以下部分组成:

  • 方案:在一个URL中,这是访问资源应该使用的协议。除了众所周知的HTTP和HTTPS,你还可以使用许多其他方案(FTP、SMTP等,详细见:更多方案
  • 域名:这部分表示托管资源的服务器。它可以是一个域名或一个IP地址。
  • 端口:它是用来发送访问资源的请求的协议端口。通常情况下,它被省略,意味着应使用默认的协议端口(例如HTTP默认的80端口)。
  • 路径:这是在托管服务器上的资源的路径。
  • 参数:这些是提供给托管服务器的可选额外信息。
  • :这部分代表资源内部的一个特定部分。它也被称为片段。

由域名和端口组成的组,如果存在的话,也被称为authority

方案和 authority 由字符串分隔://如果一个URL没有authority,方案和URL的其余部分只用冒号 :隔开。一个没有授权部分的URL的典型例子是代表一个电子邮件地址的URL,如 mailto:yourfriend@somewhere.com

4.11.2 URI

URI全名为Uniform Resource Indentifier(统一资源标识),用来唯一的标识一个资源,是一个通用的概念,URI由两个主要的子集URL和URN组成。

4.11.3 URN

URN全名为Uniform Resource Name(统一资源命名),通过资源的名字来标识资源,与其所处的位置无关,这样即使资源的位置发生变动,其URN也不会变化。

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
HTTP协议知识体系核心重点梳理
1.应用层: 规定应用程序之间的通信格式,应用层常见协议有: HTTP,HTTPS,FTP,DNS等协议。
大忽悠爱学习
2023/02/26
5730
HTTP协议知识体系核心重点梳理
【计网】从HTTP/0.9 到 HTTP/3
为什么会出现 HTTP 协议,从 HTTP1.0 到 HTTP3 经历了什么?HTTPS 又是怎么回事?
JuneBao
2022/10/26
7180
【计网】从HTTP/0.9 到 HTTP/3
【网络】应用层协议HTTP&&HTTPcookie与session&&HTTPS协议原理
虽然我们说, 应用层协议是我们程序猿自己定的. 但实际上, 已经有大佬们定义了一些现成的, 又非常好用的应用层协议, 供我们直接参考使用. HTTP(超文本传输协议)就是其中之一
用户10925563
2024/12/02
2120
【网络】应用层协议HTTP&&HTTPcookie与session&&HTTPS协议原理
网络编程-http&https
http 最初的版本(1.1之前), 是简单的请求-应答的方式,http是建立在tcp/ip的基础上,所以每次请求都要建立连接,请求拿到数据之后,就要断开连接。如果请求获取一个字符的数据,但是还需要建立连接,断开连接这些报文,带宽利用率不高,而且往返的时间增加了很多。
Check King
2021/08/09
3960
HTTP协议与HTTPS的加密流程
HTTP全称Hyper Text Transfer Protocol,即超文本传输协议。HTTP是一个应用层协议,可视为一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。
烂猪皮
2020/12/15
1.5K0
HTTP和HTTPS详解工作原理
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
格姗知识圈
2019/07/19
2.6K0
HTTP和HTTPS详解工作原理
深入了解HTTP(已完结)
在学习网络之前,了解它的历史能够帮助我明白为何它会发展为如今这个样子,能让我有探究它的兴趣。下面的这张图片就展示了“互联网”诞生至今的发展历程
yutingbai
2022/08/18
3170
深入了解HTTP(已完结)
HTTP详解(1)-工作原理
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
黄规速
2022/04/14
1.5K0
HTTP详解(1)-工作原理
万字图解 | 深入揭秘HTTP工作原理
大家好,我是「云舒编程」,今天我们来聊聊计算机网络面试之-(应用层HTTP)工作原理。
公众号 云舒编程
2024/01/25
1.1K0
万字图解 | 深入揭秘HTTP工作原理
【HTTP】267- HTTP 的15个常见知识点复习
前言 自从入职新公司到现在,我们前端团队内部一直在做 ?每周一练 的知识复习计划,我之前整理了一个 [每周一练 之 数据结构与算法] (https://juejin.im/post/5ce2a20e6
pingan8787
2019/07/25
5520
【HTTP】267- HTTP 的15个常见知识点复习
计算机网络经典20问!
计算机网络体系大致分为三种,OSI七层模型、TCP/IP四层模型和五层模型。一般面试的时候考察比较多的是五层模型。
程序员大彬
2021/10/04
3430
计算机网络经典20问!
HTTP、HTTPS协议详解
POST: 向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件,数据被包含在请求报文的主体中
_咯噔_
2022/03/14
1.2K0
https 加密、http2.0、keep-alive
HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少
Krry
2018/10/10
1.1K0
https 加密、http2.0、keep-alive
【Linux】应用层协议:HTTP和HTTPS
1. 在之前的文章中我们实现了一个网络版本的计算器,在那个计算器中揉合了协议定制以及序列化反序列化的内容,我们当时也自己定制了一套协议标准,比如请求和响应的格式应该是什么?如何读到一个完整的报文?支持的运算符有什么?等等我们都有自己的标准。 那么有没有其他大佬针对应用层的某些使用场景,已经提前给我们写好了协议软件呢?有,这个协议就是http协议,我们当时的协议仅仅是针对计算场景所设计的,而http协议主要是针对web场景所设计的。 虽然到现在我们还没真正的接触http协议的具体内容,但我们现在已经可以知道,http中一定有网络套接字编程,序列化反序列化,以及http要进行的自己的业务逻辑,而这三个方面实际和我们当时的计算器相同,都是分别对应OSI上三层模型,分别是会话,表示,应用,http的业务逻辑一般主要是电子邮件的发送,远程登陆,文件传输等……
举杯邀明月
2023/10/17
2770
【Linux】应用层协议:HTTP和HTTPS
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
本文对于计算机面试、笔试过程中经常被问到的计算机网络类问题,做一个梳理总结,方便自己查看学习,同时也希望为其他找工作、学习的伙伴提供一个参考。
寻求出路的程序媛
2024/11/07
2070
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
HTTP 常见面试题速查
PUT 和 PATCH 都是更新资源,而 PATCH 用来对已知资源进行局部更新。如果发送修改信息是全量覆盖就是用 PUT, 如果只是部分修改则使用 PATCH。
Cellinlab
2023/05/17
3010
【JavaEE】HTTP协议(HTTPS协议)和TOMCAT
我们举两个经典应用场景: 1.网页和服务器之间的交互 我们平时打开一个网站, 就是通过 HTTP 协议来传输数据的. 当我们打开了一个b站,输入了一串网址的时候,此时就是在基于通过HTTP的方式和b站的服务器进行通信。浏览器就给b站的服务器发送了一个 HTTP 请求, b站的服务器返回了一个 HTTP 响应. 这个响应结果被浏览器解析之后, 就展示成我们看到的页面内容. (这个过程中浏览器可能会给服务器发送多个 HTTP 请求, 服务器会对应返回多个响应, 这些响应里就包含了页面 HTML, CSS, JavaScript, 图片,字体等信息) 所谓 “超文本” 的含义, 就是传输的内容不仅仅是文本(比如 html, css 这个就是文本), 还可以是一些其他的资源, 比如图片, 视频, 音频等二进制的数据 2.手机app与服务器之间的交互 比如打开一个外卖软件,加载一些食品列表数据以及下单操作,这些过程也是通过HTTP来完成的。它跟网页与服务器之间的交互一样。
E绵绵
2025/04/18
820
【JavaEE】HTTP协议(HTTPS协议)和TOMCAT
「查缺补漏」巩固你的HTTP知识体系
这次梳理的篇幅主要是涉及网络部分,包括HTTP等,对巩固自己的网络知识体系也是很有帮助的,进一步的对性能优化而言也是帮助很大的。
童欧巴
2020/12/31
6250
Android 面试 - 网络基础会问哪些问题及其解答
Android 面试中问到网络基础,基本是围绕 OSI 七层模型或者是 TCP/IP 四层模型展开的,主要包括各层名称及功能、每层有哪些协议。 另外会深入考察应用层和传输层。 应用层:(HTTP、DNS 等) HTTP 报文格式、头部有哪些字段 HTTP 状态码 HTTP 和 HTTPS 的区别 HTTPS 中 SSL/TLS 加密的握手过程 HTTP 一次连接的具体过程 GET、POST 的区别 DNS 解析过程 Cookie、Session 原理 传输层:(TCP、UDP 等) TCP/IP 四层模型(
非著名程序员
2018/02/02
8230
Android 面试 - 网络基础会问哪些问题及其解答
详解http和https
近几年,互联网发生着翻天覆地的变化,尤其是我们一直习以为常的HTTP协议,在逐渐的被HTTPS协议所取代,在浏览器、搜索引擎、CA机构、大型互联网企业的共同促进下,互联网迎来了“HTTPS加密时代”,HTTPS将在未来的几年内全面取代HTTP成为传输协议的主流。
SmallRoll小卷
2023/02/28
6890
详解http和https
相关推荐
HTTP协议知识体系核心重点梳理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验