HTTP基础

一、HTTP协议

1、HTTP协议概念

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

它规范了请求和响应内容的类型和格式, 是基于 TCP/IP 协议的。

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

HTTP 是一种应用层协议,是基于 TCP/IP 通信协议来传递数据的,其中 HTTP1.0、HTTP1.1、HTTP2.0 均为 TCP 实现,HTTP3.0 基于 UDP 实现。现主流使用 HTTP1.0 和 HTTP3.0

协议: 为了使数据在网络上从源头到达目的,网络通信的参与方必须遵循相同的规则,这套规则称为协议,它最终体现为在网络上传输的数据包的格式。

注意: 当我们访问一些网页时,是显示通过 HTTPS 来进行通信的,并且当下大多数的网页都是通过 HTTPS 来进行通信的,因为 HTTPS 在 HTTP 的基础上做了一个加密的工作。HTTPS 将在本文末尾具体介绍

2、HTTP协议的组成

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

2.1、请求部分

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

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

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

2.2、响应部分

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

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

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

2.3、消息头的共性

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

多个单词用-分隔 名称和值之间用冒号加空格分隔

多个值之间用逗号加空格分隔 两个头之间用回车分隔

3、请求部分

3.1、请求行:

GET /day03/1.html HTTP/1.1

内容 说明
GET 请求的方式。(还有POST)
/day03/1.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、Referer

告诉服务器,我(当前请求)从哪里来?

作用:1、防盗链 2、统计工作

if(Referer.equals("www.baibu.com")){

}

3.4、请求正文

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

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

3.5、Get/Post的区别

get: 1、请求参数在请求行中,在url后。2、请求的url长度有限制的 3、不太安全

POST:1、请求参数在请求体中 2、请求的url长度没有限制的 3、相对安全

4、响应部分

4.1、响应行

HTTP/1.1 200 OK

内容 说明
HTTP/1.1 使用协议的版本。
200 响应状态码
OK 状态码描述
4.2 、常用状态码
状态码 说明
200 一切都OK
404 请求资源未找到
500 服务器错误
4.3、响应消息头
消息头 说明
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版本

5、请求的组成部分

1、请求行 2、请求头 3、请求空行 4、请全体

6、请求的方式:

HTTP的请求方式有7种,我们最常用的有两种

1、get 2、post

注意:只有post请求方式才有请全体

相关推荐
灿烈♡几秒前
数据链路层
网络·网络协议
wellnw1 分钟前
【IPv6】IPv6地址格式及地址分类(组播、单播、任播)整理
运维·服务器·网络
ZachOn1y29 分钟前
计算机网络:物理层 —— 信道及其极限容量
网络·计算机网络·信道·物理层·知识点汇总
limengshi1383921 小时前
通信工程学习:什么是IP网际协议
网络·网络协议·学习·tcp/ip·信息与通信
程序猿阿伟2 小时前
《C++音频降噪秘籍:让声音纯净如初》
开发语言·c++·网络协议
无敌开心2 小时前
fastAPI教程:路由操作及HTTP请求响应
网络协议·http·fastapi
李的阿洁3 小时前
OSPF的不规则区域
运维·服务器·网络
逸狼3 小时前
【JavaEE初阶】网络原理
服务器·网络·智能路由器
shmily ....4 小时前
文件上传漏洞原理
网络·安全
IPFoxy6665 小时前
如何判断静态代理IP地址是否被污染?
网络·安全·web安全