web与网络http/tcp/ip

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/strivenoend/article/details/84069708

http:基于请求,响应的无状态的协议

http无状态性与tcp短链接:一次tcp连接,只有一个http请求和一个http响应

http无状态性与tcp长链接:一次tcp连接,有多个http请求和多个http响应、

--------------------------------------------------------------------------------------------------

http的无状态?

建立连接/关闭连接,http协议没有一个内建机制来维护两个请求之间的状态,会话控制允许web服务器跟踪同一个浏览器用户的连续请求,实现记录用户的状态

如何解决http的无状态?

如何实时的记录该浏览器用户发送的连续的请求呢?

1)利用隐藏域

2)利用url字符串进行参数传递

均有浏览器发送的sessionid给服务器,服务器通过sessionid查用户的状态

扫描二维码关注公众号,回复: 4076710 查看本文章

【服务端语言呢,都是用来做http响应的,因此哦,响应头啦,就是作为服务端开发的人要关心的哦】

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------http请求(浏览器):

1)起始行:请求方法/请求资源/http版本

2)请求头:浏览器客户端信息

3)空行

4)正文

http响应(服务器):

1)起始行:http版本/响应码/响应消息

2)响应头:服务端信息,设置http  cookie,

3)空行

4)正文:html文档

-----------------------------------------------------------------------

如何解决http的无状态?通过会话控制

1cookie:保存在客户端(内存/磁盘)

2session:保存在服务器端

========================================================================

cookie

1工作原理

客户端第一次通过http请求访问服务器,服务器观察到客户第一次访问,服务器在响应时在响应头为其响应一个cookie,

客户以后在通过http请求访问服务器时,会携带对应的cookie。,服务器根据客户端传来的cookie区分用户,

cookie在服务器的响应头中设定

服务端响应cookie的内容:

set-cookie

name:设置cookie的名称

value:设置cookie的值,通过$_COOKIE['name'],

expire:设置cookie的失效日期(会话cookie和持久cookie)

path:指定cookie在web服务器的存储路径

domain:cookie允许的域名

secure:hhtp/https

2cookie的分类

会话cookie:由session取代,存到缓存中(内存的浏览器进程保存)(expire=0)

持久cookie:会将数据存储到磁盘(文本信息保存)中(设置了expire)

3php中cookie的使用

setcookie()/setrawcookie()函数/header()来为客户端设置cookie

这种函数需要在其他信息被输出到浏览器前调用(http正文),因为设置cookie是作为服务器响应时在http响应头中的(http响应头)

删除cookie:将cookie失效,unset($_cookie['key'])--------浏览器自动删除

访问cookie$_COOKIE[]

isset($_COOKIE['key']):用来判断key的cookie是否存在

猜你喜欢

转载自blog.csdn.net/strivenoend/article/details/84069708