计算机网络 - http

HTTP,超文本传输协议HyperText Transfer Protocol。基于TCP,无状态。

持续连接与非持续连接

http默认使用持续连接,但是也可以配置为使用非持续连接。持续连接就是指发送请求,接收响应后,并不直接关闭TCP连接,再有下个http请求,还用这个TCP连接发送;非持续连接就是发送请求,接收响应后,直接关闭TCP连接,后续的请求自己重新创建新的TCP连接

介绍一个概念,往返时间 Round-Trip Time RTT,是指一个短分组从客户到服务器然后再返回客户端所花费的时间。RTT包括分组传播时延、分组在中间路由器和交换机上的排队时延以及分组处理时延。

对于非持续连接,TCP三次握手的前两次消耗一个RTT,第三次握手时,客户端会向该TCP连接发送一个HTTP请求报文,然后服务器在该TCP连接上发送HTML文件。因此,一次请求会消耗两个RTT加上服务器传输HTML文件的时间
在这里插入图片描述

对于持续连接,在第一次三次握手建立TCP连接后,后续的HTTP请求就不需要消耗额外的RTT

HTTP报文格式

请求报文

在这里插入图片描述
请求行有三个字段:

  • 方法字段。包括GET、POST、PUT、DELETE、HEAD等
  • URL字段
  • HTTP版本字段
    首部行有很多,每一行由key:value CRLF组成。常见的首部有:
  • Host:指明对象所在的主机
  • Content-Type:指明发送的数据格式,如:application/json
  • If-Modified-Since:条件get,如果指定的时间后并未修改,此次请求就不需要返回响应的数据了

响应报文

在这里插入图片描述
状态行包括:

  • 版本
  • 状态码及短语。代表这次请求的结果状态。常见的状态码、短语有:
    • 200 OK:请求成功
    • 301 Moved Permanently:原URL以转移,新的URL在响应报文的Location首部行中
    • 400 Bad Request:服务器无法理解请求
    • 404 Not Found:请求的地址不存在
    • 500:服务端异常

cookie

我们知道,HTTP协议是无状态的。但是,很多时候,服务器需要知道请求是由谁发起的,即用户信息,或者基于别的需要,服务器需要知道一些别的信息。此时,HTTP就使用cookie对用户进行追踪。
cookie技术一般有四个组件:

  • 在HTTP响应报文中有个Set-Cookie首部
  • 在HTTP的请求报文中有个Cookie首部行
  • 在客户端有个cookie文件,由浏览器管理
  • 服务器有的地方负责将cookie与用户信息关联起来
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值