超文本传输协议HTTP

超文本传输协议(HTTP):HTTP定义了浏览器如何向万维网服务器请求万维网文档,以及服务器怎么把文档传送给浏览器,所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。

HTTP特性

  1. 基于TCP/IP协议:每次打开一个网站都需要先建立好TCP/IP会话(由浏览器实现)。
  2. 短连接:每次打开一个网站时,当服务端把这个页面内容全部返回后,就把这次连接断开,会话结束。此时在浏览器上看到的页面已经是下载到本地的,若此时服务器端更新了内容,本地页面是不会更新的。除非刷新一次,再进行一次会话。
  3. 被动响应:若客户不主动请求服务器,服务器是不会主动连接客户的。
  4. 无状态:当浏览器发送请求给服务器时,服务器响应,同一个浏览器再发送请求给服务器时,服务器依然会响应,但是不知道是刚才的浏览器。这样使服务器更容易支持大量并发的HTTP请求。

HTTP操作过程
浏览器要访问WWW服务器时,首先要完成对WWW服务器的域名解析,一旦获取了服务器的IP地址,浏览器就通过TCP向服务器发送连接建立请求。

万维网的工作过程如下图所示。万维网服务器不断地监听TCP的端口80,当监听到连接请求后便与浏览器建立TCP连接。然后浏览器就向服务器发送请求获取某个web页面的HTTP请求。服务器收到请求后,将构建所请求web页的必须信息,并通过HTTP响应返回给浏览器。浏览器再将信息进行解释,然后将web页返回给用户。最后,TCP连接释放。
在这里插入图片描述
从浏览器地址栏输入 url 到显示主页的过程:

  1. 浏览器分析链接所指向页面的URL
  2. 浏览器向DNS请求解析域名的IP地址
  3. 域名系统DNS解析出服务器的IP地址
  4. 浏览器与该服务器建立TCP连接
  5. 浏览器发出HTTP请求
  6. 服务器通过HTTP响应把文件发送给浏览器
  7. 释放TCP连接
  8. 浏览器解析文件,并将web页面显示给用户

HTTP协议的连接方式

  • 非持久连接:每个网页元素对象的传输都需要单独建立一个TCP连接。
  • 持久连接:万维网服务器在发送响应后仍然保持这条连接,使同一个客户和该服务器可以继续在这条连接上传输后续的HTTP请求和响应报文。持久连接又分为非流水线和流水线两种方式。
    在这里插入图片描述

HTTP长连接
HTTP长连接指的是复用TCP连接。多个HTTP请求可以复用一个TCP连接,节省了TCP连接的建立和断开的消耗。

HTTP报文结构
HTTP是面向文本的,因此报文中的每个字段都是一些ASCII码串,并且每个字段长度都是不确定的。

HTTP有请求报文和响应报文两种:

  • 请求报文:从客户向服务器发送的请求报文

  • 响应报文:从服务器到客户的问答
    在这里插入图片描述
    请求报文和响应报文都由三部分组成,两种报文格式的区别是开始行不同。

  • 开始行:用于区分是请求报文还是响应报文。请求报文的开始行称为请求行,响应报文的开始行称为响应行。开始行的三个字段之间都以空格分隔。请求行中有三个内容:方法、请求资源的URL和HTTP版本。其中方法是对所请求对象进行的操作,也就是一些命令。
    方法如下:
    GET:请求读取由URL标识的信息
    POST:给服务器添加信息
    HEAD:请求读取由URL信息标识的首部
    CONNECT:用于dialing服务器

  • 首部行:用来说明浏览器、服务器或报文主体的一些信息。

  • 实体主体:通常不用。

如某浏览器发出的请求报文:
在这里插入图片描述

HTTP 常用的状态码及其含义

  • 1XX:信息性状态码
  • 2XX:成功状态码
  • 3XX:重定向状态码
  • 4XX:客户端错误状态码
  • 5XX:服务端错误状态码
超文本传输协议 HTTP 是一种在 Web 上进行数据通信的协议。它基于客户端-服务端模式,客户端向服务端发送请求,服务端向客户端发送响应。HTTP 协议的主要特点包括: - 简单快速:客户端向服务端请求时使用的方法(method)动词通常只有 GET 和 POST,请求报文和响应报文都是简单的结构体,因此通信快速。 - 灵活:HTTP 允许使用任意的 MIME 类型传输任何类型的数据对象。 - 无连接HTTP 协议每次请求都会建立一次连接,请求结束后立即断开连接,这种方式会导致在处理多个请求时浪费时间和资源。为了解决这个问题,HTTP/1.1 引入了持久连接(Keep-Alive),可以在一个连接上处理多个请求。 - 无状态:HTTP 协议是一种无状态的协议,也就是说,它不会保留连接的状态信息。这意味着每次请求都是独立的,不能根据前一次请求的结果判断下一次请求的处理方式。 HTTP 还有一些其他的特点,例如: - 支持代理、缓存等功能。 - 报文编码方式灵活,支持文本、多媒体、程序文件等多种数据类型。 - 请求和响应报文支持多种编码方式,如日期编码、压缩编码等。 引用:注:协议 HTTP 不仅传送完成超文本跳转所必需的信息,而且也传送任何可从互联网上得到的信息,如文本、超文本、声音和图像等。 [^1]。引用:(3)HTTP/1.1的请求和响应报文是面向文本的(text-oriented)。当客户连续发送请求并受到响应时,在 TCP连接上传送的 HTTP 报文首部成为不小的开销。在这些首部中有很多段是重复的。为此,HTTP/2 把所有的报文都划分为许多较小的二进制编码的帧,并采用新的压缩算法,不发送重复的首部字段,大大减小了首部的开销,提高了传输效率。 。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值