HTTP协议

HTTP协议格式


HTTP请求
首行:[方法]+[URL]+[版本号]
Header:请求的属性,冒号分割键值对;遇到空行表示Header部分结束
Body:空行后面的内容。Body允许为空字符串,如果不为空,,Header中会有Content-Length属性来标识Body长度

HTTP响应
首行:[版本号]+[状态码]+[状态码解释]
Header:请求的属性,冒号分割键值对;遇到空行表示Header部分结束
Body:空行后面的内容。Body允许为空字符串,如果不为空,Header中会有Content-Length属性来标识Body长度;如果服务器返回一个html页面,那么html页面内容就在Body中

常见的Header

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

GET和POST请求方法

GETPOST
对数据长度的限制发送数据时,GET方法向URL添加数据;URL的长度是受限制的无限制
对数据类型的限制只允许ASCII字符没有限制,也允许二进制数据
安全性和POST相比性能较差,因为发送的数据是URL的一部分比GET安全
可见性数据在URL对所有人是可见的数据不会显示在URL中
格式url?key1=value1&key2=value2key1=value1&key2=value2

注意:POST请求方法的请求数据既可以在url中,也可以在请求体中

HTTP状态码

分类分类描述
1**信息,服务器收到请求,需要请求者继续执行
2**成功,操作被成功接收并处理
3**重定向
4**客户端错误,请求包含语法错误或无法完成请求
5**服务器错误,服务器在处理请求的过程中发生了错误
状态码描述
200请求成功
301永久重定向
302临时重定向
307临时重定向,与302类似。使用GET重定向
403服务器理解请求客户端的请求,但是拒绝执行此请求
404找不到资源:可以是网页,可以是后台服务
500服务器内部错误,无法完成请求

重定向和转发

重定向转发
实现原理(1)返回3XX状态码+location响应头 (2)浏览器跳转到location所在的url当次http请求,直接获取要转发的url地址的响应并返回
跳转次数21
请求数据是否会丢失请求重定向的url时,会丢失第一次的请求数据转发的url,还携带第一次请求的内容,不会丢失
url是否会变不会

session和cookie

HTTP是一个无状态协议,这一次的请求和上一次请求没有任何关系。这种无状态的好处是快速;坏处是需要进行用户状态保持的场景时,必须使用一些方式或手段:session和cookie

sessioncookie
使用场景访问敏感url通过session判断用户身份登录页面勾选“remember me/记住我”,以后访问页面直接跳转到登录后的页面
原理服务器的实现:(1)数据都保存在服务器(2)服务器重启就消失客户端实现:(1)数据都保存在客户端浏览器本地文件(2)关闭浏览器不影响

注意:因为每次发起Http请求,都要携带有效的cookie信息,所以cookie一般有大小限制。为了防止增加网络压力,一般不超过4k

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值