文章目录
目标:
学习 HTTP 协议,对浏览器和服务器的交互流程以及规范有一定程度的认知。
一、HTTP的概念介绍
1.HTTP概念
HTTP :超文本传输协议(Hyper Text Transfer Protocol)
2.作用
HTTP是一个简单的请求-响应协议,它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
3.特点
1.支持客户端/服务端模型
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。
3.灵活:可以传输任何类型的数据
4.http无连接:限制每次连接只处理一个请求,服务端完成客户端的请求后,即断开连接。(传输速度快,减少不必要的连接,但也意味着每一次访问都要建立一次连接,效率降低)
5.http无状态:对于事务处理没有记忆能力。每一次请求都是独立的,不记录客户端任何行为。(优点解放服务器,但可能每次请求会传输大量重复的内容信息)
二、HTTP的交互流程
- 第一步:
(1)客户与服务器建立连接; - 第二步:
(2)客户向服务器提出请求; - 第三步:
(3)服务器接受请求,并根据请求返回相应的文件作为应答; - 第四步:
(4)客户与服务器关闭连接。
三、HTTP的请求、响应格式
1.请求格式结构图
![](https://img-blog.csdnimg.cn/20191221194642582.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDAzNDMyOA==,size_16,color_FFFFFF,t_70)
2.请求格式结构解释
请求头:请求方式、请求的地址和 HTTP 协议版本
请求行:消息报头,一般用来说明客户端要使用的一些附加信息
空行: 位于请求行和请求数据之间,空行是必须的。
请求数据:非必须。
3.示例(get 请求方式):
4.示例(post 请求方式):
四、请求方式
1.请求方式
根据 HTTP 标准,HTTP 请求可以使用多种请求方法。
HTTP/1.1协议中共定义了八种方法(有时也叫“动作”),来表明Request-URL指定的资源不同的操作方式
HTTP1.0定义了三种请求方法: GET,POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法
2.get 和 post 请求方式的区别:
- get 请求方式: 也就是在浏览器的搜索栏输入的网址,那个就是get请求。
请求数据会以?的形式隔开拼接在请求头中,不安全,没有请求实体部分。HTTP 协议虽然没有规定请求数据的大小,但是浏览器对 URL 的长 度是有限制的,所以 get 请求不能携带大量的数据。
示例:ie=UTF-8&wd=参数就是请求数据
- post 请求方式:
请求数据在请求实体中进行发送,在 URL 中看不到具体的请求数据, 安全。适合数据量大的数据发送。
最常见的post请求方式如:登录、注册
五、响应
1.响应格式的结构:
响应行(状态行):HTTP 版本、状态码、状态消息
响应头:消息报头,客户端使用的附加信息
空行:响应头和响应实体之间的,必须的。
响应实体:正文,服务器返回给浏览器的信息
2.示例:
3.示例2:
响应行响应头:
响应实体:
六、响应状态码
1.状态码查看
2.常见的状态码
2.1 分类
分类 | 分类描述 |
---|---|
1** | 信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被成功接收并处理 |
3** | 重定向,需要进一步的操作以完成请求 |
4** | 客户端错误,请求包含语法错误或无法完成请求 |
5** | 客户端错误,请求包含语法错误或无法完成请求 |
2.2 常见状态码
响应状态码 | 描述 |
---|---|
200 OK | 客户端请求成功 |
400 Bad Request | 客户端请求有语法错误,服务器未能理解请求。 |
401 Unauthorized | 请求未经授权,被请求的页面需要用户名和密码。 |
403 Forbidden | 服务器收到请求,但是拒绝提供服务。因为没有权限,所以请求页面的访问被禁止。 |
404 Not Found | 请求资源不存在,服务器无法找到被请求的页面。(例如URL输错了) |
500 Internal Server Error | 服务器发生不可预期的错误 |
503 Server Unavailable | 请求未完成,服务器临时过载或宕机。服务器当前不能处理客户端的请求,一段时间后可能恢复正常。 |
更多响应状态码请查看:https://www.runoob.com/http/http-status-codes.html
参考
http 百度百科: https://baike.baidu.com/item/http/243074?fr=aladdin
HTTP请求方式中8种请求方法(简单介绍):https://www.cnblogs.com/weibanggang/p/9454581.html
相关
更多Java EE基础的 Servlet与JSP相关 请点击:【Servlet + JSP】 目录