HTTP协议-Web基础-1

本文详细介绍了HTTP协议的基础概念,包括资源、MIME类型、URI、URL、URN等,并讲解了HTTP事务、方法、状态码等内容。此外,还概述了HTTP报文的结构、TCP/IP连接的建立过程以及HTTP的不同版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《http权威指南》学习笔记

Web基础

资源

    web服务器是web资源的宿主,不仅包括静态文件,还包括根据需要生成内容的软件程序。

MIME(Multipurpose Internet Mail Extension)类型

    多用途因特网邮件扩展,是为了解决在不同电子邮件系统之间搬移报文时存在的问题。MIME原本在邮件系统中工作得非常好,HTTP采用了它,用于描述并标记多媒体内容。

    MIME类型是一种文本标记,表示一种主要的对象类型和一个特定的子类型,中间由一条斜杠来分割。

  • HTML格式的文本文档由text/html类型来标记
  • 普通的ASCII文本文档由text/plain类型来标记
  • JPEG版本的图片为image/jpeg类型
  • GIF版本的图片为image/gif类型
  • Apple的QuickTime电影为video/quicktime类型
  • 微软的PowerPoint演示文件为application/vnd.ms-powerpoint类型

常见的MIME类型有数百个,可以查表。

URI(Uniform Resource Identifier)统一资源标识符

    URI就好比因特网的邮政地址一样,URI有两种形式,分别称为URL和URN。

URL

    URL(Uniform Resource Locator)统一资源定位符

主要分三部分

  • 协议类型(http://)
  • 网址(www.nimei.com)
  • Web服务器上的某个资源(/2huo/niniubi.gif)
URN

    URN(uniform resource name)统一资源名,目前还处于试验阶段,尚未大范围使用。故通常意义的URI是指URL

事务

http事务是由一条http请求和http响应组成。

方法
  • GET,取得资源
  • PUT,修改资源
  • DELETE,删除资源
  • POST,将客户端数据发送到一个服务器网关应用程序,可以在header或者body中添加数据。
  • HEAD,仅发送资源响应中的HTTP首部

状态码

    每条HTTP响应报文返回时都会携带一个状态码。

HTTP报文

包含三个部分

  • 起始行,在请求报文中用来书名要做什么,在响应报文中说明出现了什么情况。
  • 首部字段,起始行后有0个或者多个首部字段,每个首部字段包含一个键和一个值。
  • 主体,包含任意的二进制数据,也可以包含文本。

连接

报文构建后,需要传输,用TCP/IP协议

TCP/IP

    HTTP是应用层协议,无需关系细节,细节交给TCP/IP协议。TCP提供了
- 无差错的数据传输
- 按序传输(数据总是会按照发送的顺序达到)
- 未分段的数据流(可以在任意时刻以任意尺寸将数据发送出去)

连接、IP地址及端口号

    HTTP客户端向服务器发送报文之前,需要用网际协议(IP)地址和端口号在客户端和服务器之间建立一条TCP/IP连接。

    一般情况下,都是通过IP:端口确定网址,但是为了人类方便,使用主机名代替IP,然后通过DNS来解析主机名,HTTP端口如果没写,默认是80。

步骤如下

  • 浏览器从URL中解析出服务器的主机名
  • 浏览器将服务器的主机名转换成服务器的IP地址
  • 浏览器将端口号从URL中解析出来
  • 浏览器建立一条与web服务器的TCP连接
  • 浏览器向服务器发送一条HTTP请求报文
  • 服务器向浏览器回送一条HTTP响应报文
  • 关闭连接,浏览器显示文档

协议版本

  • HTTP/0.9

    1991年原型版,只支持GET方法,不支持多媒体内容的MIME类型、各种http首部、版本号

  • HTTP/1.0

    添加了版本号、各种http首部、一些额外的方法,以及对多媒体对象的处理。

  • HTTP/1.0+

    添加了一些特性,比如:持久的keep-alive连接,虚拟主机支持,以及代理连接支持

  • HTTP/1.1

    重点关注的是校正http设计中的 结构性缺陷,明确语义,引入重要的性能优化措施,删除了一些不好的特性。当前用的就是HTTP/1.1

  • HTTP-NG(HTTP/2.0)

    重点关注的是性能的大幅优化,以及更强大的服务逻辑远程执行框架。1998年就研究完了,没有要取代1.1的意思。

web的结构组件

代理

    位于客户端和服务器间的http中间实体。接收客户端的http请求,转发给服务器(可能会对请求进行修改之后转发),代表用户访问服务器,代理可以对请求和响应进行过滤。

缓存

    HTTP的仓库,使常用页面的副本可以保存在离客户端更近的地方。提高性能,节约带宽。

网关

    连接其他应用程序的特殊web服务器。通常用于将http流量转换成其他的协议,比如ftp协议。

隧道

    对http通信报文进行盲转发的特殊代理。建立隧道之后,就会在两条连接之间对原始数据进行盲转发的http应用程序,转发时不会窥探数据。常见用途:通过http连接承载加密的安全套接字层(SSL)流量,这样整个请求和响应都是加密状态的,比较安全。

Agent代理

    发起自动http请求的半智能web客户端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值