http协议
发布日期:2022-02-24 01:06:43 浏览次数:5 分类:技术文章

本文共 2166 字,大约阅读时间需要 7 分钟。

一.HTTP协议简介:

**HTTP:**超文本传输协议,客户端和服务器之间数据传输的协议(基于TCP/IP协议之上),(属于应用层的面向对象的协议,是一种详细规定了浏览器和万维网服务器之间互相通信的规则)

二.HTTP协议发展历程:

为什么有了HTTP2.0(只用于HTTPS://网址,又称为HTTP/2、HTTPS安全的协议即SSL)呢?

因为http协议是纯文本,无状态的协议

纯文本: 客户端和服务器之间发送的报文信息我们可以直接就看到,一目了然(如登录的时候用户名和密码直接能看到就不安全了)

**无状态:**是指协议对于事物处理没有任何能力,缺少状态意味着如果后续处理需要前面的信息,则必须重传,这样可能导致每次连接传送的数据量增大

每次发的请求,服务器不能区分到底是不是同一个人发的(如想买东西,我第一次添加到购物车几个苹果手机,第二次添加到购物车里一个苹果电脑,通过http协议来实现的话,发了两个请求,由于http是无状态的,服务器就不知道这两个请求是不是一个人发的,因为向服务器发送请求有好多,不止我买东西,别人也买东西都是无状态就乱了,不知道是谁买的)

三.HTTP协议的会话方式:

浏览器和服务器之间通信过程要经历四个步骤:

在这里插入图片描述
无链接:是指限制每次连接只处理一个请求,可节省传输时间
*****浏览器与服务器之间得连接过程都是短暂的,每次连接都处理一个请求和响应,对每一个页面的访问,浏览器与服务器之间都要建立一次单独的链接
*****浏览器到服务器之间的所有通讯都是完全分开的请求和响应对

四.HTTP1.0和HTTP1.1的区别:

提高了效率		在HTTP1.0版本中,浏览器请求一个带有图片的网页,会由于下载图片而与服务器之间开启一个新的连接,但在HTTP1.1版本中,允许浏览器在拿到当前请求对应的全部资源再断开连接,提高了效率 。(在这里1.0需要建立2次连接,1.1只需要建立1次连接)

在这里插入图片描述

五.报文:

**报文:**客户端与服务器之间通信传输的内容我们称之为报文

请求报文:客户端发送给服务器的叫请求报文
响应报文:服务器发送给客户端响应的叫响应报文
报文格式:

在这里插入图片描述

**服务器默认端口:**80(也可以改成其他的端口,如:8080等)

请求报文(客户端请求信息):

客户端发送一个HTTP请求到服务器的请求消息包含以下格式(四个部分):
请求行(request):请求方法 url 协议版本
请求头部(header):头部字段名 值
空行
请求数据在这里插入图片描述
在这里插入图片描述
响应报文(服务器响应消息):
HTTP响应也由四个部分组成,分别是:
状态行
消息报头
空行
响应正文

在这里插入图片描述

在这里插入图片描述

二.HTTP协议的方法:

请求方法:
方法 说明
GET 请求资源
POST 提交表单/文件,可能修改服务器资源,如登录
PUT 更新资源
DELETE 删除指定资源
OPTIONS 获取服务器支持的http请求方法
检查服务器的性能
三.Request 头信息
在这里插入图片描述
四.Response 状态码信息
HTTP应答:状态行,消息报头,正文
1.状态码:
1xx 请求已接收,继续处理(服务器已经接收了这 个请求,继续处理)
2xx 请求成功
3xx 重定向,继续处理
4xx 客户端请求错误(403 Forbidden(使用 python 编写一个爬虫,频繁的去访问豆瓣,如果短时间内访问次数过多被豆瓣检查出来,那我们对外的ip就会被封掉,这时候无论我是使用浏览器还是使用其他的方式访问豆瓣,都会被403拒绝,可能要等上一天的时间/更多时间才能访问豆瓣)/404
NotFound(访问一个不存在的资源)/400 Bad Request)
5xx 服务端错误(服务器上发生未知的错误)

根据状态码判断请求的状态

1xx/3xx 我们继续请求
2xx 我们请求成功,如200
4xx /5xx 说明请求发生错误,这时候我们就结束当前
的请求
2.http应答Headers
headers字段 说明
Content-Length 数据长度(服务器返回i给我们的客户端
数据的长度)
Content-Type 传输内容格式
Content-Range 断点续传范围,例如:200-400/400
Set-Cookie

cookie信息是记录客户端登录状态的,因为http协议是无连接无状态的,那我们的状态就是靠cookie

例如:
打开百度,进行百度帐号的登录,使用浏览器或者是python模块,首先要进行一个登录的操作,在百度的服务器是要有一个帐号和密码的,客户端发起一个post,提交表单(表单内容:uname,password)提交给服务器后,服务器会在自己的后台数据库中进行用户名和密码的校验,如果是校验成功,服务器应答一个200报文还设置了一个cookie信息,cookie信息给了客户端后,客户端就要把cookie信息保存住了,只有 把cookie信息保存住了,再次访问百度的时候,百度才知道,是已有的账户,已经进行了登录,有时候在访问一个网站的时,它下面会有个菜单栏提示:10天内自动登录,这个所租的事情就是将我们的这个网站的登录信息进行了保存,她在这里有一个时间戳超过10天会让你再次输入密码进行登录操作,这个实质就是使用的cookie。
在这里插入图片描述

转载地址:https://blog.csdn.net/weixin_45877226/article/details/105603221 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:从页面输入url到页面加载完成发生了什么?
下一篇:MAC中安装Navicat Premium

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月07日 06时03分46秒