在解释Http协议是什么之前,先解释一下什么是协议、超文本、web服务器。
- 协议
协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。 - 超文本协议
超文本协议是用超链结的方法,将各种不同空间的文字信息组织在一起的网状文本。其中的文字包含有可以链结到其他位置或者文档的连结,允许从当前阅读位置直接切换到超文本连结所指向的位置。 - web服务器
web服务器一般是指网站服务器,是指驻留于因特网上某种计算机程序。可以向发出请求的浏览器等web客户端提供文档。也可以防止文件让全世界浏览,也可以放置数据文件让全世界下载。
1、什么是 Http 协议
Http协议,即超文本传输协议,是用于从web服务器传输文本到本地浏览器的传输协议。可以使浏览器更加高效,使网络传输减少。
2、Http 的特性
- 支持客户端/服务器模式
- 简单快速:客户端向服务器发送数据时,只需要传送请求方法和路径,常用的请求方法有GET、POST、HEAD。
- 灵活: 可以传输任何类型的数据对象,传输的类型又Content-Type加以标记。
- 无连接:限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
- 无状态:无状态是指协议对事务处理没有记忆功能,缺少状态意味着如果后续处理需要前面的信息,则需要重传,这样会导致每次连接传输的数据量增大。Cookie和Session就可以用于保持 Http 无状态连接。Cookie最典型的应用是判定注册用户是否已经登录网站,保持用户的登录信息。在下一次访问该网站时就不用输入用户名密码了。
3、工作原理
①、首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作就开始了。
②、建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
③、服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
④、客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。
浏览器打开一个网页需要发送多次请求
①、 当你在浏览器输入URL的时候,浏览器发送一个请求去获取 URL中 的html. 服务器把响应发送回给浏览器.
②、浏览器分析响应中的 HTML,发现其中引用了很多其他文件,比如图片,CSS文件,JS文件。
③、浏览器会自动再次发送请求去获取图片,CSS文件,或者JS文件。
④、 等所有的文件都下载成功后。 网页就被显示出来了
4、HTTP请求报文
Http请求有四部分组成:请求行、消息报头、空行、请求正文(body)。
http请求.png- 请求行
请求行由请求方法、资源统一标示符URL、协议版本、CRLF(回车换行)组成。常用的请求的方法有GET、POST、HEAD。
这里介绍一下URL组成
URL用于描述一个网络上的资源,其组成是:
Protocol://host[:port#]/path/.../[?query-string][#anchor]
Protocol : 指定低层使用的协议(例如:http, https, ftp)。
host : Http服务器的IP地址或者域名。
port :端口号, Http端口号默认是80一般默认省略不写,如果使用其他端口号必须要指明。http://xxxxxx:8080/
path : 访问资源的路径。
query-string : 发送给Http服务器的数据。
anchor : 锚
-
消息报头
消息报头通知服务器有关于客户端请求的信息。
消息报头.png -
空行
请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,接下来的是请求正文。 -
请求正文(body)
请求正文中可以包含用户提交的数据,当使用的是"GET" 方法的时候, body是为空的。
5、Http 响应报文
Http 响应报文由三部分组成:状态行、消息报头、响应正文。
- 状态行
常见状态代码及状态描述的说明如下:
(1)、1xx:通知——仅在与HTTP服务于器沟通时使用
1xx.png
(2)、2xx:成功——成功收到、理解和接受动作
2xx.png(3)、3xx:重定向——为完成请求,必须进一步采取措施
3xx.png(4)、4xx:客户端错误——请求包含错误的语法或不能完成
4xx.png(5)、5xx:服务器端错误——服务器不能完成明显合理的请求
5xx.png- 消息报头
- 响应正文
网友评论