web与网络http/tcp/ip

本文深入解析HTTP协议的基础,包括其无状态特性与TCP连接的关系,探讨了如何通过会话控制如Cookie和Session解决HTTP无状态问题,以及HTTP请求与响应的详细构成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

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

http的无状态?

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

如何解决http的无状态?

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

1)利用隐藏域

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

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

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

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

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

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

3)空行

4)正文(post方法时会有数据)

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是否存在

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

Session:服务端存储

 

php.ini中有关session的设置

session_start()

$_session[]数组

session_unset()

session_destroy();

session文件保存在web服务器的硬盘中

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值