继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

HTTP协议

青春有我
关注TA
已关注
手记 1072
粉丝 205
获赞 1007

1.HTTP协议概述

HTTP叫超文本传输协议,基于请求/响应模式。
协议:协议的甲乙双方,就是客户端(浏览器)和服务器。

HTTP是无状态协议,FTP是有状态。

  • 无状态
    无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。

双方通信的格式

  • 请求协议
    浏览器发送给服务器
    格式:

请求首行:请求方式 请求路径 协议和版本,例如:GET /index.html HTTP/1.1。
2~n请求头:请求头名称:请求内容,即为key:value格式,例如:Host:localhost:8080。
空行:用来与请求体分开。
请求体:GET没有请求体,只有POST有请求体。

  • 响应协议
    服务器发送给浏览器
    格式:

响应首行
响应头信息
空行
响应体

2.GET请求

在浏览器的地址栏中直接给出URL,那么一定就是GET请求。
点击页面上的超链接也一定是GET请求。
提交表单时,表单默认是GET请求,也可以设置为POST

webp

GET消息头说明

3.POST请求

数据不会出现在地址栏中。
数据的大小没有上限。
有请求体。
请求体中如果出现中文,会使用URL编码。

webp

POST消息头说明

4.状态码

  • 200:请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中;

  • 404:请求的资源没有找到,说明客户端错误的请求了不存在的资源;

  • 500:请求资源找到了,但服务器内部出现了错误;

  • 302:重定向,当响应码为302时,表示服务器要求浏览器重新再发一个请求,服务器会发送一个响应头Location,它指定了新请求的URL地址;

  • 304:当用户第一次请求index.html时,服务器会添加一个名为Last-Modified响应头,这个头说明了index.html的最后修改时间,浏览器会把index.html内容,以及最后响应时间缓存下来。当用户第二次请求index.html时,在请求中包含一个名为If-Modified-Since请求头,它的值就是第一次请求时服务器通过Last-Modified响应头发送给浏览器的值,即index.html最后的修改时间,If-Modified-Since请求头就是在告诉服务器,我这里浏览器缓存的index.html最后修改时间是这个,您看看现在的index.html最后修改时间是不是这个,如果还是,那么您就不用再响应这个index.html内容了,我会把缓存的内容直接显示出来。而服务器端会获取If-Modified-Since值,与index.html的当前最后修改时间比对,如果相同,服务器会发响应码304,表示index.html与浏览器上次缓存的相同,无需再次发送,浏览器可以显示自己的缓存页面,如果比对不同,那么说明index.html已经做了修改,服务器会响应200。

webp

304图解说明



作者:乐乐亲么么哒
链接:https://www.jianshu.com/p/e8602695588d


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP