HTTP 协议

简介: HTTP 协议
+关注继续查看

1. HTTP 协议概述


1.1 概念


HTTP 的全称是:Hyper Text Transfer Protocol,意为 超文本传输协议。它指的是服务器和客户端之间交互必须遵循的一问一答的规则。形容这个规则:问答机制、握手机制。

它规范了请求和响应内容的类型和格式。


HTTP 协议是由 W3C 组织管理和维护的。


1.2 版本


目前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
发送请求
得到响应
关闭连接连接超时或手动关闭连接


HTTP 协议概念是客户浏览器和服务器一种一问一答的规则,那么必须要有问有答,而且要先问后答。但是我们使用


2. HTTP 协议组成


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


2.1 请求部分


请求行: 永远位于请求的第一行


请求消息头: 从第二行开始,到第一个空行结束


请求的正文: 从第一个空行后开始,到正文的结束


image


2.2 响应部分


响应行: 永远位于响应的第一行


响应消息头: 从第二行开始,到第一个空行结束


响应的正文: 从第一个空行后开始,到正文的结束


image


2.3 消息的共性分析


消息头名称首字母大写,多个单词每个单词的首字母都大写。


多个单词用**-分隔


名称和值之间用
冒号加空格分隔


多个值之间用
逗号加空格分隔


两个头之间用
回车**分隔


3. 请求部分详解


3.1 请求行详解


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


内容说明
GET请求的方式。(还有POST)
/myapp/2.html请求的资源。
HTTP/1.1使用的协议,及协议的版本。


3.2 请求消息头详解


内容说明
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()会话管理相关,非常的重要。


3.3 请求正文详解


第一:只有post请求方式,才有请求的正文。get方式的正文是在地址栏中的。


第二:表单的输入域有name属性的才会被提交。不分get和post的请求方式。


第三:表单的enctype属性取值决定了请求正文的体现形式。概述的含义是:请求正文的MIME编码类型。


4. 响应部分详解


4.1 响应行详解


响应行:HTTP/1.1 200 OK


内容说明
HTTP/1.1使用协议的版本。
200响应状态码
OK状态码描述

常用状态码介绍:

状态码说明
200一切都OK>
302/307请求重定向(客户端行为,两次请求,地址栏发生改变)
304请求资源未发生变化,使用缓存
404请求资源未找到
500服务器错误


4.2 响应消息头详解


消息头说明
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版本


4.3 响应正文详解


就和我们在浏览器上右键查看源文件看到的内容是一样的。


<html>
    <head>
        <link rel="stylesheet" href="css.css" type="text/css">
        <script type="text/javascript" src="demo.js"></script>
    </head>
    <body>
        <img src="1.jpg" />
    </body>
</html>
相关文章
|
2天前
|
存储 移动开发 网络协议
|
2天前
|
存储 移动开发 网络协议
HTTP协议
本文介绍了HTTP协议,包括应用层协议,URL格式和性质,urlencode和urldecode函数及其url转义规则,从应用层协议自顶向下看待通信,HTTP协议格式,即请求格式和响应格式,自主实现简单的HTTP服务器及其网页实现,网页的表单内容及其提交方法,HTTP状态码,HTTP长连接性质,HTTP周边会话保持原因及其性质,cookie和session id。
96 0
HTTP协议
|
8天前
|
数据格式
HTTP协议加强
HTTP协议加强
9 0
|
10天前
|
前端开发 JavaScript
Http协议
Http协议
15 0
|
14天前
|
自然语言处理
HTTP协议中 URI、URL、URN
HTTP协议中 URI、URL、URN
15 0
|
14天前
|
网络协议 安全
HTTP协议发展和版本
HTTP协议发展和版本
25 0
|
15天前
|
安全 应用服务中间件 网络安全
HTTP协议必知必会
HTTP协议必知必会
21 0
|
18天前
|
网络协议 安全 前端开发
【JavaWeb】知识总结Ⅷ(HTTP协议, GET请求包, POST请求包, 响应包的分析)
1. http 是 TCP/IP 协议的一个应用层协议,http 也是我们 web 开发的基础. http协议特点: 2.基于请求响应模型的:一次请求对应一次响应 3.http协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的 · 缺点:多次请求之间不能共享数据 (java中使用会话技术解决session、cookie) · 优点:速度快
|
19天前
|
监控 网络协议
RTSP、RTMP、HTTP协议区别
HTTP将数据作为文件处理,所以HTTP不是流媒体协议,RTMP和RTSP是流媒体协议。 RTMP是Adobe的私有协议,未完全公开,RTSP和HTTP是共有协议。 RTMP一般传输flv,f4v格式流,RTSP传输ts,MP4格式流,HTTP没有特定的流。 RTSP一般需要2-3个通道,数据和命令通道分开,RTMP和HTTP在一个通道上传输命令和数据。
|
20天前
|
XML 网络协议 物联网
物联网协议比较 MQTT CoAP RESTful/HTTP XMPP
XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程 序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。
推荐文章
更多