HTTP协议

当输入www.google.com页面做了哪些事情

  1. 域名解析

    域名解析顺序为:浏览器自身DNS缓存 --> OS自身的DNS缓存 --> 读取host文件 --> 本地域名服务器 --> 权限域名服务器 --> 根域名服务器。如果有且没有过期则结束本次域名解析,解析成功之后进行后续操作。

  2. TCP3次握手协议

    在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.

    第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; SYN:同步序列编号(Synchronize Sequence Numbers)

    第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态

    第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(连接)状态,完成三次握手.

  3. 建立连接后,发送http请求

  4. 浏览器得到http请求的内容发送给服务器,服务器响应http请求生成html文件

  5. 浏览器接收响应的html文件,解析、整理相关的资源文件,最后渲染页面显示给用户

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rUuJsDto-1576249435461)(E:\django笔记\photo\TCP三次握手.png)]

什么是HTTP(Hyper Text Transport Protocol)协议

对客户端和服务器之间数据传输的格式规范,简称为“超文本传输协议”

什么是HTTP协议无状态协议?怎么解决HTTP无状态协议

  1. 无状态协议对于事务处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。
  2. 两种用于保持HTTP连接状态的技术:Cookie 和 Session会话保存

HTTP协议中的302状态

  1. http协议中,返回302状态码表示重定向
  2. 这种情况下,服务器返回的头部信息中会包含一个Location字段,内容是重定向到url

HTTP协议的组成

请求报文包含三部分
  • 请求行:包含请求的方法,URL,HTTP版本信息
  • 请求首部字段
  • 请求内容实体
响应报文包含三部分

- 状态行:包含HTTP版本、状态码、状态码的原因短语
- 响应首部字段
- 响应实体内容

传输过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AkQftCxc-1576249435463)(E:\django笔记\1905\http传输过程.png)]
###HTTP协议中的请求方式有哪些
- GET:用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器
- POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。
- PUT: 传输文件,报文主体中包含文件内容,保存到对应URI位置。
- HEAD: 获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。
- DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件。

  • OPTIONS:查询相应URI支持的HTTP方法。

常见的HTTP协议状态

200:请求被正常处理
204:请求被受理但没有资源可以返回
206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过Content-Range指定范围的资源。
301:永久性重定向
302:临时重定向
303与302状态码有相似功能,只是它希望客户端在请求一个URI的时候,能通过GET方法重定向到另一个URI上
304:发送附带条件的请求时,条件不满足时返回,与重定向无关
307:临时重定向,与302类似,只是强制要求使用POST方法
400:请求报文语法有误,服务器无法识别
401:请求需要认证
403:请求的对应资源禁止被访问
404:服务器无法找到对应资源
500:服务器内部错误
503:服务器正忙
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值