美文网首页
网络底层原理之HTTP

网络底层原理之HTTP

作者: 甲乙飞鱼 | 来源:发表于2021-05-27 16:59 被阅读0次

HTTP

  • URI 和 URL的关系:URI包括了URL。
  1. html/login.html,这是个URI,它 不能在网唯一标识。
  2. http://localhost:8080/hello/html/login.html 这个URI 可以在全网唯一标识,称为 URL。
  • HTTP(Hyper Text Transfer Protocol),超文本传输协议
  1. 是互联网中应用最广泛的应用层协议之一
  2. 设计HTTP最初的目的是:提供一种发布和接收HTML页面的方法,由URI来标识具体的资源
  3. 后面用HTTP来传递的数据格式不仅仅是HTML,应用非常广泛
  4. HTML(Hyper Text Markup Language) 超文本标记语言 用以编写网页

HTTP版本

  • 1991年,HTTP/0.9
  1. 只支持GET请求方法获取文本数据(比如HTML文档),且不支持请求头、响应头等,无法向服务器传递太多信息
  • 1996年,HTTP/1.0
  1. 支持POST、HEAD等请求方法,支持请求头、响应头等,支持更多种数据类型(不再局限于文本数据)
  2. 浏览器的每次请求都需要与服务器建立一个TCP连接,请求处理完成后立即断开TCP连接
  • 1997年,HTTP/1.1(最经典、使用最广泛的版本)
  1. 支持PUT、DELETE等请求方法
  2. 采用 持久连接(Connection: keep-alive),多个请求可以共用同一个TCP连接
  • 2015年,HTTP/2.0
  • 2018年,HTTP/3.0

HTTP的标准

  • 由万维网协会(W3C)、互联网工程任务组(IETF)协调制定,最终发布了一系列的RFC
  • RFC(Request For Comments,可以译为:请求意见稿)
  1. HTTP/1.1最早是在1997年的 RFC 2068 中记录的
    该规范在1999年的 RFC 2616 中已作废
    2014年又由 RFC 7230 系列的RFC取代
  2. HTTP/2标准于2015年5月以 RFC 7540 正式发表,取代HTTP/1.1成为HTTP的实现标准

HTTP报文格式(简)

HTTP报文格式.png

请求方法

  • GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE
  1. GET 常用于读取的操作,请求参数直接拼接在URL的后面(浏览器对URL是有长度限制的)
  2. POST 常用于添加、修改、删除的操作,请求参数可以放到请求体中(没有大小限制)
  3. HEAD 请求得到与GET请求相同的响应,但没有响应体
    使用场景:在下载一个大文件前,先获取其大小(HEAD),再决定是否要下载(GET)。以此可以节约带宽资源
  4. OPTIONS 用于获取目的资源所支持的通信选项,比如 服务器支持的请求方法
  5. PUT 用于对已存在的资源进行整体覆盖
  6. PATCH 用于对资源进行部分修改(资源不存在,会创建新的资源)
  7. DELETE 用于删除指定的资源
  8. TRACE 请求服务器回显其收到的请求信息,主要用于HTTP请求的测试或诊断
  9. CONNECT 可以开启一个客户端与所请求资源之间的双向沟通的通道,它可以用来创建隧道(tunnel)

请求头字段

1.png 2.png
  • 注意:q 值越大,表示优先级越高,如果不指定q值,默认是1.0(1.0是最大值)


    3.png

响应头字段

4.png 5.png 6.png

代理服务器

  • 本身不生产内容
  • 处于中间位置转发上下游的请求和响应
    面向下游的客户端:它是服务器
    面向上游的服务器:它是客户端
正向代理、反向代理
  • 正向代理:代理的对象是 客户端
  • 反向代理:代理的对象是 服务器


    正向代理与反向代理.png
正向代理的作用
  • 隐藏客户端身份
  • 绕过防火墙(突破访问限制)
  • Internet访问控制
  • 数据过滤

  • 正向代理.png
反向代理的作用
  • 隐藏服务器身份
  • 安全防护
  • 负载均衡


    反向代理.png

CDN (内容分发网络)

  • 利用最靠近每位用户的服务器

  • 更快更可靠地将音乐、图片、视频等资源文件(一般是静态资源)传递给用户


    CDN.png
  • CDN运营商在全国、乃至全球的各个大枢纽城市都建立了机房

  • 部署了大量拥有高存储高带宽的节点,构建了一个跨运营商、跨地域的专用网络

  • 内容所有者向CDN运营商支付费用,CDN将其内容交付给最终用户


    CDN1.png
  • CDN使用前


    CDN使用前.png
  • CDN使用后


    CDN使用后.png

相关文章

  • 网络底层原理之HTTP

    HTTP URI 和 URL的关系:URI包括了URL。 html/login.html,这是个URI,它 不能在...

  • 网络协议底层原理(九):HTTP

    一、HTTP协议是什么? HTTP(Hyper Text Transfer Protocol)译为超文本传输协议,...

  • 网络底层原理之HTTPS

    HTTPS (HyperText Transfer Protocol Secure) 超文本传输安全协议 常称为 ...

  • 网络底层原理之网络安全

    网络通讯中面临的四种安全威胁 截取:窃听通信内容 中断:中断网络通信 篡改:篡改通讯内容 伪造:伪造通讯内容网络安...

  • iOS底层原理

    MJ iOS底层原理视频 http://huananka.com/details/45ADA688[http://...

  • Today面试

    Runloop 底层原理Kvo 底层原理ARC 底层原理 如何实现GCD 底层原理Block 底层原理Aut...

  • springcloud使用笔记

    1 底层原理:http://developer.51cto.com/art/201811/586513.htm ...

  • Android网络请求 v1.1

    Http协议库 HttpUrlConnetion同步处理网络请求底层支持Http1.0,Http1.1。缺点:An...

  • 2022年iOS面试题2

    重点总结-四大分类: iOS底层原理性能优化以及架构多线程、网络数据结构算法iOS底层原理(必问):iOS开发必备...

  • java中的网络编程(一)

    网络编程 java后端中的网络编程, 很多时候并不需要自己编写底层代码。但是对于网络底层的原理,必须要足够了解。才...

网友评论

      本文标题:网络底层原理之HTTP

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