目录
前言:
在了解完HTTP协议的基础知识之后,可以知道该协议有两种形式的报文,上一节主要了解了HTTP协议两种报文的基本格式。
本节主要针对HTTP协议的请求报文(Request)进行详解,对请求报文的具体格式规范以及每个关键字的含义进行详细介绍。
序列:HTTP/HTTPS - 002
1.Request报文
1.1报文格式
HTTP协议请求报文是以字符文本(.txt)的格式传输,具体包含以下四大部分:
- 请求行(首行):[方法]+[url]+[版本号],分别使用空格分隔;
- 请求头(Header):请求的属性,每个键值对独占一行,冒号+空格来分割键和值;
- 空行:遇到空行表示Header部分结束;
- 正文(Body):空行后面的内容都是Body,Body允许为空字符串。
如果Body存在,则在Header中会有一个Content-Length属性来标识Body的长度。
1.2格式图解
具体的请求Request报文格式分布如图:
实际开发中的请求报文:
下文将针对请求报文这四大部分内容进行具体详解。
2.请求行(首行)
[方法]+[url]+[版本号];
2.1URL
2.1.1基本概念
我们平时俗称的“网址”其实就是说的URL(Uniform Resource Locator统一资源定位符)。
在互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
例如这是一个百度的网址,其实也就是百度的URL。
2.1.2基本格式
一个URL的标椎基本格式如下:
拆解上述图中的URL,格式分段详解:
- 协议方案名:表示使用的协议类型,常见的有http和https,也有其他的类型。(例如访问 mysql时用的jdbc:mysql)
- 登陆信息:现在的网站进行身份认证一般不再通过URL进行了,一般都会省略。
- 服务器地址:此处是一个“域名”,域名会通过DNS系统解析成一个具体的IP地址。
- 端口号:当端口号省略的时候,浏览器会根据协议类型自动决定使用哪个端口。例如http协议默认使用80端口,https协议默认使用443端口。