美文网首页
HTTP(一)

HTTP(一)

作者: _1633_ | 来源:发表于2020-12-17 23:38 被阅读0次

    Http  超文本传输协议

    HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。

    浏览器本质上是一个 HTTP 协议中的请求方,使用 HTTP 协议获取网络上的各种资源。在 HTTP 协议里,浏览器的角色被称为“User Agent”即“用户代理”,意思是作为访问者的“代理”来发起 HTTP 请求。不过在不引起混淆的情况下,我们通常都简单地称之为“客户端”。

    CDN,全称是“Content Delivery Network”,翻译过来就是“内容分发网络”。它应用了 HTTP 协议里的缓存和代理技术,代替源站响应客户端的请求。CDN 位于浏览器和服务器之间,主要起到缓存加速的作用

    爬虫是另一类 User Agent,是自动访问网络资源的程序。

    TCP/IP 协议实际上是一系列网络通信协议的统称,其中最核心的两个协议是TCP和IP,其他的还有 UDP、ICMP、ARP 等等,共同构成了一个复杂但有层次的协议栈。


       DNS 

        DNS 的核心系统是一个三层的树状、分布式服务,基本对应域名的结构:

        1. 根域名服务器(Root DNS Server):管理顶级域名服务器,返回“com”“net”“cn”等顶级域名服务器的 IP 地址;

        2. 顶级域名服务器(Top-level DNS Server):管理各自域名下的权威域名服务器,比如 com 顶级域名服务器可以返回 apple.com 域名服务器的 IP 地址;

        3. 权威域名服务器(Authoritative DNS Server):管理自己域名下主机的 IP 地址,比如 apple.com 权威域名服务器可以返回 www.apple.com 的 IP 地址。

        例如,你要访问“www.apple.com”,就要进行下面的三次查询:

        1. 访问根域名服务器,它会告诉你“com”顶级域名服务器的地址;

        2. 访问“com”顶级域名服务器,它再告诉你“apple.com”域名服务器的地址;

        3. 最后访问“apple.com”域名服务器,就得到了“www.apple.com”的地址。

    有两种手段用来减轻域名解析的压力,并且能够更快地获取结果,基本思路就是“缓存”。

    1 首先,许多大公司、网络运行商都会建立自己的 DNS 服务器,作为用户 DNS 查询的代理,代替用户访问核心 DNS 系统。这些“野生”服务器被称为“非权威域名服务器”,可以缓存之前的查询结果,如果已经有了记录,就无需再向根服务器发起查询,直接返回对应的 IP 地址。

    2 其次,操作系统里也会对 DNS 解析结果做缓存,如果你之前访问过“www.apple.com”,那么下一次在浏览器里再输入这个网址的时候就不会再跑到DNS 那里去问了,直接在操作系统里就可以拿到 IP 地址。

    3 另外,操作系统里还有一个特殊的“主机映射”文件,通常是一个可编辑的文本,在 Linux里是“/etc/hosts”,在 Windows 里是“C:\WINDOWS\system32\drivers\etc\hosts”,如果操作系统在缓存里找不到 DNS记录,就会找这个文件。

DNS 解析过程 浏览器缓存 操作系统缓存 host文件 根域名 顶级域名.....

再简要叙述一下这次最简单的浏览器 HTTP 请求过程:

    1. 浏览器从地址栏的输入中获得服务器的 IP 地址和端口号;

    2. 浏览器用 TCP 的三次握手与服务器建立连接;

    3. 浏览器向服务器发送拼好的报文;

    4. 服务器收到报文后处理请求,同样拼好报文再发给浏览器;

    5. 浏览器解析报文,渲染输出页面。


注意

1. HTTP 协议基于底层的 TCP/IP 协议,所以必须要用 IP 地址建立连接;

2. 如果不知道 IP 地址,就要用 DNS 协议去解析得到 IP 地址,否则就会连接失败;

3. 建立 TCP 连接后会顺序收发数据,请求方和应答方都必须依据 HTTP 规范构建和解析报文;

4. 为了减少响应时间,整个过程中的每一个环节都会有缓存,能够实现“短路”操作;

5. 虽然现实中的 HTTP 传输过程非常复杂,但理论上仍然可以简化成实验里的“两点”模型。

相关文章

  • HTTP协议(一):HTTP

    HTTP 协议,即超文本传输协议( Hypertext transfer protocol )。是一种详细规定了浏...

  • HTTP浅析(一)HTTP报文

    起始行 首部 主体(非必须) 结构图 连接管理 从浏览器键入地址到连接结束的过程是什么? TCP为HTTP提供一条...

  • HTTP (一)

    当你在使用浏览器浏览网页,输入一个 url 的时候其实你就开始在接触 http,但是我们并不会去考虑一个 url ...

  • http(一)

    URI统一资源标识符 :更宽泛的标识(超出了网页的范畴)定位到互联网上的资源URL:专门用于标识网页定位资源 TC...

  • HTTP(一)

    1. HTTP原理 http请求封装在应用层数据包中,再封装到tcp数据包中,再封装到ip数据包中,再封装到以太网...

  • http 一

    get与post区别从语义的角度来说 get是获取资源 安全的:不应该引起服务器任何状态的变化幂等的:同一个请求方...

  • HTTP(一)

    Http 超文本传输协议 HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的...

  • Http(一)

    一、http介绍 无状态协议——不管请求多少次,都是一样的应答(不会记录上一次的行为or记录) https—— U...

  • HTTP协议-HTTP\1扩展一

    序言 HTTP \1协议是一个可扩展的协议,而在真是的网络世界中,HTTP做了哪些扩展从而达到商用的级别呢? HT...

  • HTTP之一:什么是HTTP

    本文仅供笔者平日学习笔记之用,侵删原文:https://mp.weixin.qq.com/s/wZONAYSlku...

网友评论

      本文标题:HTTP(一)

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