2021-04-26

HTTP是什么?

HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网 (WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议。
我们使用 http 来访问 Web 上某个资源,比如 html/文本、word、avi 电影、其他资源。 官方协议网站:https://tools.ietf.org/html/rfc2608 HTTP 使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。 URL 是一种特殊类型的 URI,包含了用于查找某个资源的足够的信息。 URL,全称是 UniformResourceLocator, 中文叫统一资源定位符,是互联网上用来标识某一 处资源的地址。

URI 和 URL 的区别

URI 是个纯粹的句法结构,用于指定标识 Web 资源的字符串的各个不同部分。URLURI 的一个特例,它包含了定位 Web 资源的足够信息。其他 URI,比如 mailto:cay@horstman.com,则不属于定位符,因为根据该标识符无法定位任何资源。
URI 是统一资源标识符,而 URL 是统一资源定位符。因此,笼统地说,每个 URL 都 是 URI,但不一定每个 URI 都是 URL。这是因为 URI 还包括一个子类,即统一资源名称 (URN),它命名资源但不指定如何定位资源。上面的 mailto 就是一个 URN 的示例。
URL 是 uniform resource locator,统一资源定位器,它是一种具体的 URI,即 URL 可以用 来标识一个资源,而且还指明了如何 locate 这个资源。

一个完整的 URL

包括以下几部分: http://www.mz.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name
1.协议部分:该 URL 的协议部分为“http:”,这代表网页使用的是 HTTP 协议。在 Internet 中可以使用多种协议,如 HTTP,FTP 等等本例中使用的是 HTTP 协议。在"HTTP"后面的“//” 为分隔符
2.域名部分:该 URL 的域名部分为“www.mz.com”。一个 URL 中,也可以使用 IP 地址作为域名使用
3.端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是 一个 URL 必须的部分,如果省略端口部分,将采用默认端口
4.虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。 虚拟目录也不是一个 URL 必须的部分。本例中的虚拟目录是“/news/”
5.文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没 有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和 “#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是 “index.asp”。文件名部分也不是一个 URL 必须的部分,如果省略该部分,则使用默认的文 件名
6.参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询 部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数, 参数与参数之间用“&”作为分隔符。
7.锚部分:从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也 不是一个 URL 必须的部分

一次完整 http 请求的过程

在这里插入图片描述

HTTP 协议报文结构

用于 HTTP 协议交互的信息被称为 HTTP 报文。
请求端(客户端)的 HTTP 报文叫做 请求报文;
响应端(服务器端)的叫做响应报文。
HTTP 报文本身是由多行(用 CR+LF 作 换行符)数据构成的字符串文本。
HTTP 报文大致可分为报文首部和报文主体两部分。两者由最初出现的空行(CR+LF) 来划分。通常,并不一定有报文主体。

请求报文结构

请求报文的首部内容由以下数据组成:
请求行 —— 包含用于请求的方法、请求 URI 和 HTTP 版本。
首部字段 —— 包含表示请求的各种条件和属性的各类首部。(通用首部、请求首部、 实体首部以及 RFC 里未定义的首部如 Cookie 等)
在这里插入图片描述
在这里插入图片描述

响应报文结构

状态行 —— 包含表明响应结果的状态码、原因短语和 HTTP 版本。
首部字段 —— 包含表示请求的各种条件和属性的各类首部。(通用首部、响应首部、 实体首部以及 RFC 里未定义的首部如 Cookie 等)
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值