http详解

http

公网IP地址是唯一确认一台主机的,而我们所谓的网络“资源”,都一定是存在网络中的一台Linux机器上。Linux或者传统的操作系统,保存资源的方式都是以文件的方式保存的。单Linux系统,标识一个唯一资源的方式是通过路径。所以IP+Linux路径,就可以唯一的确认一个网络资源。

URL(统一资源定位符)

http请求报文图例:

在这里插入图片描述

http响应报文图例

在这里插入图片描述

conten-length代表正文部分有多少字节,决定我们读取多少个len字节的正文。先读取到换行处,可以保证我们读取全部的请求报文,如果正文中有Content-length,说明后面还有多少字节的正文,我们继续读这么多字节的正文,这样可以读取所有的报文+有效载荷并且不会越界读取到下一个数据。

content-type代表正文部分的类型。

‘/’代表的是访问网站的首页也就是index.html。

http1.0和http1.1,最主要区别是http1.1支持长连接及短链接,http1.0只支持短链接。

**Get方法:**获取,最常用的方法,一般的网页获取的默认方法都是Get方法,如果Get要提交参数,要通过URL来进行参数拼接交给server端。

**POST方法:**推送,提交参数比较常用的方法,提交参数一般在正文部分提交。

不同点:

1.两者提交的位置不同,post方法比较私密(私密不等于安全)不会回显在浏览器的输入框中,GET则会回显到URL中。

2.GET通过URL传参,而URL大小有限,POST方法,由正文部分传参,没有大小限制。

在这里插入图片描述

常见http的head

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

http本身是一种无状态协议,不记录上下文的状态,这样带来的好处是实现简单。

**cookie:**会话管理

站在浏览器角度,cookie是一个文件,该文件保存用户的私密信息。

站在http角度,一旦该网站对应有cookie,在发起任何请求的时候都会自动在request中携带该cookie信息。这也就是当我们在网页中输入了自己的账户和密码,对端服务器就会将cookie发送到浏览器中,在后面每一次对服务器的request请求都会带上该cookie,这也就是为什么我们登陆以后就可以一直访问网站。

seession:会话管理

由于cookie会将私密信息放入到用户的浏览器中,而一旦不法分子获得该cookie就可以获取到用户的私密信息,所以出现了seession。seession的核心思路是将用户的私密信息都放到服务器中。举例说明,当用户输入自己的账户和密码后,server就会形成一个seession文件来保护用户的信息,而给用户返回一个编码作为每次访问seession文件的权限,这个编码是独一无二的,在一定程度上可以减少用户被盗用信息。但是这并没有完全解决被盗用的问题,因为如果该编码也被盗用到,不法分子可以以用户的身份在服务器中访问到seession文件。暂时没有可以很好解决被盗用的问题,但是也出现了一些衍生解决问题的方法,比如说检测IP异地登陆时要求用手机验证码,如果用户使用了一些敏感操作会发出警告等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值