HTTP简介
HTTP协议:
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。用于定义WEB浏览器与WEB服务器之间交换数据的过程。
一般服务器就是说,有一些共享资源可以供其他用户使用,并且其他用户可以向上面上传资源的计算机个体
HTTP协议的作用
HTTP协议是学习JavaWeb开发的基石,帮助管理和维护⼀些复杂的WEB站点
HTTP协议的特点
- 是基于请求/响应模型的协议
①请求和响应必须成对;
②先有请求后有响应。 - HTTP协议默认的端口:80
eg: https://www.taobao.com:80
HTTP协议
- HTTP请求
由客户端
向服务器端
- HTTP请求格式
包含请求行
、请求头
、空行
、请求体
四个部分
①请求行
例如:POST /web01/login.html HTTP/1.1
请求行必须在HTTP请求格式的第一行。
请求行格式:请求方式 资源路径 协议/版本
请求方式:协议规定7种,常用两种:GET和POST
GET请求:
1.将请求参数追加在URL后面,不安全。例如:login.html?username=tom&password=1234
2.URL长度限制GET请求方式的数据大小。
3.没有请求体
POST请求:
1.请求参数显示请求体处,较安全。
2.请求数据大小没有显示。
3.只有表单设置为method=”post”才是post请求.其他的都是get请求。
常见GET请求:
地址栏直接访问、<a href=””>、<img src=””> 等
②请求头
描述了客户端
向服务器
发送请求时使用的http协议类型、所使用的编码以及发送内容的长度,referer,等等。
请求头
也是用的键值对key:value
常见请求头 | 描述 |
---|---|
Referer | 浏览器通知服务器,当前请求来自何处 。 如果是直接访问,则不会有这个头 。 常用于:防盗链 |
Cookie | 与会话有关技术,用于存放浏览器缓存的cookie信息 |
User-Agent | 浏览器通知服务器,客户端浏览器与操作系统相关信息 |
③请求体
通常情况下,只有post请求方式才会使用到请求体,
请求体中都是用户表单提交的数据,每一项数据都使用键值对key=value,多组值使用&相连。
例如;username=tom&password=1234
HTTP响应
从服务端
到客户端
- HTTP响应格式
响应行
、响应头
、空行
、响应体
四个部分
①响应行
例如:HTTP/1.1 200 OK
格式:协议/版本 状态码 状态码描述
状态码:服务器与浏览器用于确定状态的固定数字号码
200 :请求成功。
302 :请求重定向。
304 :请求资源没有改变,访问本地缓存。
404 :请求资源不存在。通常是用户路径编写错误,也可能是服务器资源已删除。
500 :服务器没开机或服务器内部错误。通常程序抛异常。
②响应头
响应头: 用来描述服务器回给客户端浏览器的content的⼀些描述
响应头也是用的键值对 key:value
常见响应头 | 描述 |
---|---|
Location | 指定响应的路径,需要与状态码302配合使用,完成跳转 |
Content-Disposition | 文件下载的时候使用。通过浏览器以下载方式解析正文 |
Set-Cookie | 与会话相关技术。服务器向浏览器写入cookie |
Refresh | 定时刷新 |
③响应体
服务器
发送给浏览器
的正文
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="#" method="post">
⽤户名:<input type="text" name="username" value=""/> <br/>
密 码:<input type="text" name="password" value=""/> <br/>
<input type="submit"/>
</form>
</body>
</html>