TCP/IP五层(四层)模型——应用层

应用层

应用层是TCP/IP五层(四层)模型的最顶层,主要负责程序间的沟通,如简单电子邮件传输(SMTP),文件传输协议(FTP),网络远程访问协议(Telnet)等,网络编程主要就是针对应用层

HTTP协议——超文本传输协议

1 HTTP协议介绍

HTTP协议是程序员自己定义的一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。
HTTP协议(HyperText Transfer Protocol)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

2 URL介绍
2.1 URL格式及字段

这里写图片描述
其实我们俗称的“网址”就是URL,详细见上面图中的例子
(1)协议方案名:访问网站时所遵循的协议,通常为http、https
(2)登录信息:一般格式为 用户名:密码,但是这项一般都省略
(3)服务器地址:访问的网站所在的主机地址,域名
(4)服务端口号:服务器程序是该主机中的哪个进程,由端口号给出。HTTP的默认端口号为80,可以省略
(5)带层次的文件路径:所请求文件在主机的路径,其中第一条 / 表示Web的根目录
(6)查询字符串:?之后的为查询字符串,表示请求的内容(若没有,可省略)
(7)片段标识符:可省略

2.2 urlencodeurldecode

在上面了解过URL的格式后,但是在查询一些包含特殊字符的信息时却看到一些不一样的信息

这里写图片描述
在问号?后面的字段是查询字符串,我们查询的内容为C++,那么在问号后面显示的信息应该为wd=C++,但是实际上显示的内容为wd=C%2B%2B,这是为什么??
因为在URL中本身是包含一些字符的,所以URL就规定在参数中出现的特殊字符必须进行转义——将字符变为16进制,然后从右到左取四位,每两位做一位,前面加上%,所以就变为上面的格式了

3 HTTP协议格式

HTTP协议分为HTTP请求和HTTP响应,因此两种格式也不相同,但是大体分为四部分
这里写图片描述

3.1 HTTP请求格式

这里写图片描述

主要分为四部分:
(1)请求行:在HTTP请求报文中第一行,以空格为界,分为三个区域:【请求方法,常为GET/POST】+【请求的资源URL】+【HTTP协议版本,常为1.0/1.1】;
(2)请求报头Header:在HTTP请求报文中从第二行到空行之前的即为请求报头,是请求属性,均以冒号分割的键值对形式呈现,每组属性间用 \n 分隔;
(3)空行:表示报头已完,不能省略
(4)请求正文Body:空行以后的均是请求正文,表示要提交给浏览器看的消息,允许为空字符串。
其中:
1)GET方法:请求消息在正文中
2)POST方法:请求消息在报文中

3.2 HTTP响应格式

这里写图片描述

主要分四部分:
(1)响应行:在HTTP请求报文中第一行,以空格为界,分为三个区域:【协议版本号】+【状态码】+【状态码解释】;
(2)响应报头Header:在HTTP请求报文中从第二行到空行之前的即为请求报头,表示请求的属性;
(3)空行:表示报头已完,不能省略;
(4)响应正文Body:空行以后的均是请求正文,允许为空字符串,这部分内容为真实能够看到的(HTML/JS/CSS页面)

下面是一个实例
这里写图片描述

4 HTTP的方法

这里写图片描述

5 HTTP状态码

这里写图片描述
比较常见的状态码:200(OK),404(Not Found),403(Forbidden),302(Redirect,重定向)

猜你喜欢

转载自blog.csdn.net/L_X_Y_HH/article/details/82013508