http相关概念:

https://www.cnblogs.com/heyongshen/p/16777541.html

浏览器访问网页的过程:

1.浏览器输入域名后通过DNS将域名解析为web站点的IP地址

2.因为web使用的是tcp协议,所以再传输层通过tcp的三次握手和服务器站点建立连接

3.客户端通过应用层协议http发送http请求

4.站点将返回回来的html、css等内容通过浏览器的引擎重新合成、渲染为对应的页面

http报文:

一次完整的http事务分为http请求和http响应。

请求报文:

请求报文由三部分组成:

开始行:位于第一行,http使用的方法、URL、http的版本、回车换行(CRLF)

首部行:开始行后面的行统称为首部行(键值对类型组成)

空行;

实体主体:http请求时携带的数据信息

响应报文:

开始行是状态行:http版本、状态码、解释状态码的简单短语、回车换行(CRLF)

其他的和请求报文的一样

http的报文详解

http请求方法:Method

请求方法,标明客户端希望服务器对资源执行的动作

GET: 从服务器获取一个资源

POST: 向服务器输入数据,通常会再由网关程序继续处理

PUT: 将请求的主体部分存储在服务器中,如上传文件

DELETE: 请求删除服务器上指定的文档

version版本

显示http的版本信息

http的 status 状态码

状态码由三位数字组成,标记请求处理过程中发生的情况

  状态码的分类:

1xx:100-101 信息提示

2xx:200-206 成功

3xx:300-307 重定向

4xx:400-415 错误类信息,客户端错误

5xx:500-505 错误类信息,服务器端错误

http协议常用的状态码

301: 请求的URL指向的资源已经被删除;但在响应报文中通过首部Location指明了资源现在所处的新位置;Moved Permanently

302: 响应报文Location指明资源临时新位置 Moved Temporarily

304: 客户端发出了条件式请求,但服务器上的资源未曾发生改变,则通过响应此响应状态码通知客户端;Not Modified

307: 浏览器内部重定向

401: 需要输入账号和密码认证方能访问资源;Unauthorized

403: 请求被禁止;Forbidden

404: 服务器无法找到客户端请求的资源;Not Found

500: 服务器内部错误;Internal Server Error

502: 代理服务器从后端服务器收到了一条伪响应,如无法连接到网关;Bad Gateway

503: 服务不可用,临时服务器维护或过载,服务器无法处理请求

504: 网关超时

cookie和session

http协议是无状态协议,服务器无法持续追踪访问者的来源

有状态和无状态

无状态:不能记住用户的信息

有状态:服务器会记住客户端的相关信息

有状态和无状态的区别:是否基于tcp的持续连接(长连接)

短连接和长连接

短连接:每次请求都要进行重新连接

长连接:一次连接,长期生效

http协议属于短连接(http1.0每次请求资源都要重新连接,http1.1时间长一点,但是后面还是会断开,断开之后服务器就不能识别这个客户端的相关信息了)

http协议设置成无状态的原因:历史原因

解决http无状态连接的问题:

cookie+session技术

方法一:将所有信息都到cookie里面 --- 胖cookie

  胖cookie: 所有信息的放在cookie中会造成网络带宽消耗大。为了避免这个问题,就不把所有的信息都存放在cookie中,

方法二:cookie只存放核心内容

  cookie:只放核心内容。例如表示用户身份的id,其他的信息存放在服务器端(类似于一张表格) --- session(会话),一般是基于内存的。

  web服务器通过cookile判断用户身份,再通过自己存放的session查询其他的一些信息。

总结session和cookie的区别:

区别一:

  session和cookie都是在服务器端生成,cookie通过set-cookie发送给客户端存储,session存放再服务器端。

区别二:

  cookie基于首部字段发送的,记录用户的关键信息,session记录用户的详细信息。cookie和session存在依赖关系。cookie携带的id作为session的主键。通过id找到sesion里面存的详细信息。

区别三:有限期

cookie有限期分类:

  长期有效:浏览器关闭后不会自动删除,指定时间删除。

  会话级有限期:随着浏览器的关闭,cookie自动删除

session的有效期:

  指定时间内有效,超过时间就删除。

查看原文