前两天总结了TCP今儿来个HTTP,来看一看啊

先来认识URL

URL:统一资源定位器(Uniform Resource Locator)的简称,我们见到的太多了,每打开一个网页就会看到,浏览器通过解析给定URL就可以在网络上找到对应的资源
在这里插入图片描述
1、协议名称:我们常见的HTTP(超文本传输协议,默认端口80)、HTTPS(默认端口443)、SMTP(传邮件.默认端口25)、FTP(传文件,默认端口21)、Telnet(远程登录,默认端口23)

2、服务器地址:就是你要找的资源的地址,(有时前面会有用户名和密码,格式:uesername:password@hostname)这里是“user:[email protected]”)

3、端口号:可以省略,省略时使用的是默认端口,传输协议有自己的默认端口。

4、带层次的文件路径:从第一个“/”开始到"?“为止,就跟你在windows下的盘符路径是一个概念,是带层次的文件路径部分。

5、查询字符串:从“?”开始到“#”为止之间的部分是查询字符串,查询字符串可以允许有多个参数,参数之间用“&”作为分隔符,

6、片段标识符:从“#”开始到最后,都是片段标识符,这里是ch1_7374

HTTP协议格式

在这里插入图片描述

HTTP协议的版本

HTTP0.9:只支持GET这一个请求方式,只能访问HTML格式的资源
HTTP1.0:一次请求创建一次连接获得一个web资源,响应后就会断开连接,下一个请求需要再次建立TCP连接,但我们都知道TCP需要三次握手才能建立连接,所以1.0版本效率很低。默认短连接
HTTP1.1:一次请求创建一次连接,可以允许多个HTTP请求,获得多个web资源,默认长连接
HTTP2.0:增加双工模式,不仅客户端能够同时发送多个请求,服务端也能同时处理多个请求,采用了多路复用的技术(频分、时分、波分),做到同一个连接并发处理多个请求效率很高。

HTTP的方法

在这里插入图片描述
GET:请求获取URL所标识的资源,没有请求正文部分,可以理解为数据库的查
POST :在URI所标识的资源后附加新的数据,有请求正文,理解为改
HEAD:请求获取由URI所标识的资源的响应消息报头
PUT: 请求服务器存储一个资源,并用URI作为其标识,理解为增
DELETE:请求服务器删除URI所标识的资源,理解为删
TRACE:请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT:保留将来使用
OPTIONS :请求查询服务器的性能,或者查询与资源相关的选项和需求

HTTP状态码

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

2XX
200:ok,客户端请求成功,正常响应
204:正常响应,但没有实体
206:范围请求,返回部分数据
3XX
301:永久重定向
302:临时重定向
303:和302类似,但必须使用GET方法
304:状态未改变
307:临时重定向,不该改变请求方法
4XX
400:请求报文语法错误
401:需要认证
403:服务器拒绝访问对应的资源
404:请求的资源不存在
5XX
500:服务器故障
503:服务器处于超负载或正在停机维护

HTTP常见Header

1、Host:客户端告知服务器,所请求的资源在哪儿
2、Connection:默认值是keep-alive,要求服务器不要关闭TCP连 接,close()表示明确要求关闭连接。
3、Accept-Encoding:说明自己可以接收的压缩方式
4、User-Agent:声明用户的操作系统和浏览器版本信息
5、Content-Type:数据类型,常见的有html、 image/jpeg,image/png,video/mp4,application/json,zip
6、Content-Length:Body的长度,请求和响应头都可以使用
7、Location:搭配3**状态码使用,告诉客户端接下来要去哪里访问
8、Cookie:用于在客户端存储少量信息.通常用于实现会话的功能
9、Set-Cookie:服务器向客户端设置Cookie;
10、Referer: 当前页面是从哪个页面跳转过来的

HTTP协议的特点

1、灵活:HTTP支持传输任意类型的数据对象,由Content-Type标记传输的类型。
2、简单快捷: 客户端在向服务器请求服务时,只需要请求方法路径URL,请求方法有:GET、HEAD、POST等,每一种方法规定了客户端与服务器联系的类型,由于HTTP协议简单,使得HTTP服务器的规模小,因而通信速度很快。

3、无状态:HTTP是无状态协议,无状态是指协议对于事务处理没有记忆能力,缺少状态意味着如果后续需要处理前面的信息,必须要重来一遍,但这样会导致每次连接传送的数据量增大。

4、无连接:无连接的含义就是每次连接就只处理一个请求。服务器处理完客户端的请求之后,并收到客户端的应答之后,就断开连接,这种方式可以节省传输时间。
5、支持C/S模式

HTTP和HTTPS

简单理解,http传送数据(包括账号和密码),都是明文传送,很容易被窃取或者侦听,在现有的互联网应用中,很明显有不安全因素,所以有了https,可以简单理解成https多了一层加密解密层,
简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
http+加密+认证+完整性保护=https
HTTPS的特点
内容加密:采用混合加密技术,中间者无法直接查看明文内容
验证身份:通过证书认证客户端访问的是自己的服务器
保护数据完整性:防止传输的内容被中间人冒充或者篡改
HTTPS和HTTP的区别主要如下:
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一-定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的; HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比htt

HTTP的长连接和短连

长连接:即建立一次连接,可以被多个请求访问,客户端和服务器建立连接完成一次读写后不会主动关闭,后面可能会继续使用这个连接。长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况,比如数据库的连接。频繁的短连接会造成socket错误。
在这里插入图片描述
短连接:建立一次连接只进行一次请求。管理起来比较简单,而像WEB网站的HTTP服务器用的就是短连接,省资源。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/chris__x/article/details/106795496