HTTP协议(一)

一、HTTP协议概述

1.HTTP协议概念

  HTTP的全称是:Hyper Text Transfer Protocol,意为 超文本传输协议。它指的是服务器和客户端之间交互必须遵循的一问一答的规则。形容这个规则:问答机制、握手机制。
  它规范了请求和响应内容的类型和格式。
  HTTP协议是由W3C组织管理和维护的。

2.HTTP协议版本

目前HTTP协议主要是1.0版本和1.1版本。这两个版本的区别主要是两个方面。
第一:HTTP1.1版本比1.0版本多了一些消息头。
第二:HTTP1.1版本和1.0版本的执行过程不一样。执行过程如下:

HTTP1.0HTTP1.1
创建连接(TCP/IP)创建连接(TCP/IP)
发送请求发送请求1
得到响应得到响应1
关闭连接发送请求2
创建连接(TCP/IP)得到响应2
发送请求
得到响应
关闭连接连接超时或手动关闭连接

3.HTTP协议相关说明

  HTTP协议概念是客户浏览器和服务器一种一问一答的规则,那么必须要有问有答,而且要先问后答。
  但是我们使用<script>,<link><img>标签,没有手动发起请求,但是仍然能从服务器端拿到数据,原因就是:在浏览器遇到<script>,<link>,<img>标签时会自动发出请求。


二、HTTP协议组成

由HTTP协议的概念可知,它分为问和答两部分。其中问指的就是请求部分,而答指的就是响应部分。

1.请求部分

  1. 请求行: 位于请求的第一行

请求行:GET /myapp/2.html HTTP/1.1

内容说明
GET请求的方式。(还有POST)
/myapp/2.html请求的资源。
HTTP/1.1使用的协议,及协议的版本。
  1. 请求头: 从第二行开始,到第一个空行结束
内容说明
Accept告知服务器,客户浏览器所支持的MIME类型。
Accept-Encoding告知服务器,客户浏览器所支持的压缩编码格式。最常用的就是gzip压缩。
Accept-Language告知服务器,客户浏览器所支持的语言。一般都是zh_CN或en_US等。
Referer告知服务器,当前请求的来源。
只有当前请求有来源的时候,才有这个消息头。从地址栏输入的没有来源。
作用:1 投放广告 2 防盗链
Content-Type告知服务器,请求正文的MIME类型。
Content-Length告知服务器,请求正文的长度。
User-Agent浏览器相关信息
Connection: Keep-Alive连接的状态:保持连接
If-Modified-Since告知服务器,客户浏览器缓存文件的最后修改时间。
Cookie(********)会话管理相关,非常的重要。
  1. 请求空行:位于请求头和请求体之间
  2. 请求体: 从第一个空行后开始,到正文的结束
    第一:只有post请求方式,才有请求的正文。get方式的正文是在地址栏中的。
    第二:表单的输入域有name属性的才会被提交。不分get和post的请求方式。
    第三:表单的enctype属性取值决定了请求正文的体现形式。概述的含义是:请求正文的MIME编码类型。
enctype取值请求正文体现形式
application/x-www-form-urlencodedkey=value&key=value
multipart/form-data此时变成了多部分表单数据。多部分是靠分隔符分隔的。

登录页面(get)请求展示(没有请求体)

在这里插入图片描述

登录页面(post)请求展示(有请求体)

在这里插入图片描述


2.响应部分

  1. 响应行: 永远位于响应的第一行
    响应行:HTTP/1.1 200 OK
内容说明
HTTP/1.1使用协议的版本。
200响应状态码
OK状态码描述

常用状态码介绍:

状态码说明
200一切都OK>
302/307请求重定向(客户端行为,两次请求,地址栏发生改变)
304请求资源未发生变化,使用缓存
404请求资源未找到
500服务器错误
  1. 响应头: 从第二行开始,到第二个空行结束
消息头说明
Location请求重定向的地址,常与302,307配合使用。
Server服务器相关信息。
Content-Type告知客户浏览器,响应正文的MIME类型。
Content-Length告知客户浏览器,响应正文的长度。
Content-Encoding告知客户浏览器,响应正文使用的压缩编码格式。常用的gzip压缩。
Content-Language告知客户浏览器,响应正文的语言。zh_CN或en_US等等。
Content-Disposition告知客户浏览器,以下载的方式打开响应正文。
Refresh定时刷新
Last-Modified服务器资源的最后修改时间。
Set-Cookie(*******)会话管理相关,非常的重要
Expires:-1服务器资源到客户浏览器后的缓存时间
Catch-Control: no-catch不要缓存,//针对http协议1.1版本
Pragma:no-catch不要缓存,//针对http协议1.0版本
  1. 相应空行
  2. 响应体: 将资源文件发送给客户端浏览器进行解析

登录页面响应消息

在这里插入图片描述


3.消息头的共性分析

  1. 消息头名称首字母大写,多个单词每个单词的首字母都大写。
  2. 多个单词用-分隔
  3. 名称和值之间用冒号加空格分隔
  4. 多个值之间用逗号加空格分隔
  5. 两个头之间用回车分隔
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值