HTTP请求报文与响应报文

1,http是啥?

  http全拼?我不知道具体可以去网上去搜,他是一个超文本传输协议,超文本是啥?经过我百度之后,得到答案,超文本就是具有超链接的文本,那什么是协议呢?这个协议简单的来说就是计算机与计算机联系交互的一种共同遵守的合约,目前http版本最高到了2.4了,但是现在浏览器沿用的最常见的还是http1.1版本的,这篇博客主要讲的是http的请求报文和响应报文,具体他是怎么请求的怎么发起连接的,可以看tcp的三次连接和四次挥手。

2,http的优缺点,有没有什么能代替它的存在

  1. 兼容:支持客户/服务器模式(C/S或B/S)
  2. 灵活:基本上能发送任何数据类型对象,正在传输的类型由Content_Type加以标记。
  3. 无连接:无连接的含义是限制每次连接只处理一个请求,服务器处理完客户的请求,并受到客户的应答后,即断开连接,采用这种方式可以节省很多传输时间。
  4. 无状态:http协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。为了解决这个问题, web程序引入了cookie机制来维护状态。
  5. 目前是没有什么代替的方案

3,请求报文结构:


注:请求方法有一点要说的,get和post是比较常用的,两者有一些区别,get和post,post比较安全一点,因为get会将参数放到url上,容易被人看到,而post会将参数放到请求体里(body)里,而且url会对参数有限制,不能超过2083字节,而post不会。

4,响应报文结构:

5,cookie与cookie:

1) cookie和session有什么关系。
  cookie与seesion是为了解决http无状态的缺点而设计的,为了保持客户端与服务端之间保持状态的解决方案,具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上它还有其他选择。
2)session有效期的问题:
  Session是可以存储针对于某一个用户的浏览器以及通过其当前窗口打开的任何窗口具有针对性的用户信息存储机制。
通常大家认为,只要关闭浏览器,session就消失,其实这是错误的理解。对session来说也是一样的,除非程序通知服务器删除一个session,否则服务器会一直保留。由于关闭浏览器不会导致session被删除,迫使服务器为seesion设置了一个失效时间,当距离客户端上一次使用session的时间超过这个失效时间时,服务器就可以认为客户端已经停止了活动,才会把session删除以节省存储空间.
3)session生成和失效的过程:
  第一次访问某个web站点资源时,客户端提交没有带SessionID的请求(请求报文头没有Cookie头域信息),客户端再次访问同个web站点时,提交带有SessionID的请求(通过Cookie头域存储SessionID)。由服务端判断session是否失效,如果未失效,可查询属于当前会话的信息列表。如果失效,则创建新的session(产生新的SessionID),而原先的session(包含session带的信息列表)则丢失,无法访问。


4)cookie的认识:
  保存SessionID的方式可以采用Cookie,这样在交互过程中浏览器可以自动的按照规则把这个SessionID发回给服务器。Cookie的命名方式类似于SessionID。有时Cookie被人为的禁止,所以出现了其他机制以便在Cookie被禁止时仍然能够把SessionID传递回服务器。这种技术叫做URL重写,就是把SessionID直接附加在URL路径的后面,附加方式也有两种,一种是作为URL路径的附加信息,表现形式为http://www.wantsoft.com/index.asp;jsessionid= ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764 。
另一种是作为查询字符串附加在URL后面,表现形式为http://www.wantsoft.com/index?js ... 99zWpBng!-145788764

posted @ 2021-06-21 16:15  姜煜  阅读(194)  评论(0编辑  收藏  举报