计算机网络】应用层协议----HTTP

应用层负责应用程序间的沟通,即定义了位于不同主机中的多个应用进程之间通信的协议。满足我们日常的网络需求,比如SMTP(电子邮件传输)、FTP(文本传输协议)、HTTP(超文本传输协议)
上面提到了协议二字,简单来说,协议就是一种“约定”,比如我们一会儿在哪见面,我们会提前约定好地点。应用层中应用最广泛的协议就是HTTP协议了。

HTTP协议

客户端和服务器的通信,必须要通过请求和响应的交换来达成通信,HTTP协议规定:客户端先发出请求建立通信,服务器在没有接收到请求时是不会响应的

HTTP的特点:
1.HTTP基于TCP/IP协议
2.通常使用的场景是基于CS/BS
3.无状态无连接协议(后面有具体解释)

HTTP的组成

由HTTP请求和HTTP响应组成
客户端request:请求行、请求报头、空行、请求正文
服务器response:响应行、响应报头、空行、响应正文
在这里插入图片描述
请求行中:URI 、 version 、版本号,比如:HTTP/1.1
响应行中:
状态码:比如200(状态码解释:OK//客户端请求成功)
400 (状态码解释:Bad Request//客户端请求有语法错误,不能被服务器所理解)

报头中放的是键值对(比如键:小闻,值:12345;小闻:12345就是一个键值对)
HTTP常见的Header
Content-Type:数据类型(比如text/html等)
Content-Length:Body的长度
Host:客户端告知服务器,所请求的资源是在哪个主机的哪个端口上
User-Agent:声明用户的操作系统和浏览器版本信息
referer:当前页面时从哪个页面跳转过来的
location:搭配3XX状态码使用,告诉客户端接下去要去哪里访问
Cookie:用于在客户端存储少量信息,通常用于实现会话(session)的功能

HTTP的方法
请求资源的常见方法:GET方法通过请求行的URL传参,POST方法通过请求正文传参,下面更具体点:

方法 说明 支持HTTP协议版本
GET 获取资源 1.0、1.1
POST 传输实体主体 1.0、1.1
PUT 传输文件 1.0、1.1
HEAD 获得报文首部 1.0、1.1
DELETE 删除文件 1.0、1.1
OPTIONS 询问支持的方法 1.1
TRACE 追踪路径 1.1
CONNECT 要求用隧道协议连接代理 1.1
LINK 建立和资源之间的关系 1.0
UNLINE 断开连接关系 1.0

HTTP的状态码

类别 原因短语
1XX Informational(信息性状态码) 接收的请求正在处理
2XX Success(成功状态码) 请求正常处理完毕
3XX Redirection(重定向状态码) 需要进行附加操作以完成请求
4XX Client Error(客户端错误码) 服务器无法处理请求
5XX Server Error(服务器错误状态码) 服务器处理请求出错

常见的状态码:
200 (OK) 请求成功[一般用于Get和Post请求]
404 (Not Found) 客户端请求有语法错误,服务器无法处理请求
403 (Forbidden) 服务器收到请求,但拒绝服务
301 (Moved Permanently) 永久重定向(请求的资源被永久移动到新的URI)
302 (Redirect) 临时重定向(资源被临时移动。客户端应继续使用原有的URI)
504 (Bad GateWay) 充当代理服务器,未及时从远端服务器获取请求

URI 和 URL
URI统一资源标识符,是用来唯一标识一个资源
URL(Uniform Resource Locateor)统一资源定位器,每个网页都有一个唯一的名称标识,这个标识就叫做URL,简单的说,URL就是Web地址,俗称“网址”
它是具体的URI,不仅标识了一个资源,还知名如何定位这个资源,具有全球唯一性

URL格式由三部分组成:
协议、存放该资源的主机IP地址(有时也包括端口号)、主机资源的具体地址
在这里插入图片描述
Windows主机不区分URL大小写,但是,Unix/Linux主机区分大小写

无连接无状态:简化了服务器,不会造成不必要的连接占用,但请求可能会传输重复信息

无连接:每次连接只处理一个请求。请求时建连接,请求完断连接(服务器处理完客户端的请求,并收到客户端的应答后,断开连接)这种方式不仅节约传输时间,还可尽快把资源释放出来服务其他客户端

无状态:指协议对事物处理没有记忆能力(也就是服务器并不直到客户端是什么状态,每个请求都是独立的)。不过也有缺点:假如你后面要继续处理前面的,那就必须要重传了,这类情况就会导致连接传送的数据量大。但是如果不需要之前信息时,应答就比较快了)

Cookie\Set-Cookie

发布了78 篇原创文章 · 获赞 2 · 访问量 3320

猜你喜欢

转载自blog.csdn.net/weixin_43219708/article/details/104675875