http协议概述
讲解
什么是HTTP协议
HTTP
是
HyperText Transfer Protocol(
超⽂本传输协议
)
的简 写,传输HTML
⽂件。
HTTP
是互联⽹上⽤的最多的⼀个协议
,
所有的
www
开头的都是遵循这个协议的(
可能是
https)
HTTP协议的作⽤
HTTP
作⽤:⽤于定义
WEB
浏览器与
WEB
服务器之间
交换数据的过程
和数据本身的
内容
浏览器和服务器交互过程
:
浏览器请求
,
服务请求响应
请求
(
请求⾏
,
请求头
,
请求体
)
响应
(
响应⾏
,
响应头
,
响应体
)
⼩结
1. HTTP
协议
:
超⽂本传输协议,它就定义了客户端与服务器端进⾏交互时候的规则
2. HTTP
协议的作⽤
:
定义客户端与服务器端交互的过程以及传输的数据
请求部分
讲解
get⽅式请求
【请求⾏】
GET /myApp/success.html?
username=zs&password=123456 HTTP/1.1
【请求头】
Accept: text/html, application/xhtml+xml, */*
X-HttpWatch-RID: 41723-10011
Referer: http://localhost:8080/myApp/login.html
Accept-Language: zh-Hans-CN,zh-Hans;q=0.5
User-Agent: Mozilla/5.0 (MSIE 9.0; qdesk
2.4.1266.203; Windows NT 6.3; WOW64;
Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Host: localhost:8080
Connection: Keep-Alive
Cookie: Idea-b77ddca6=4bc282fe-febf-4fd1-b6c9-
72e9e0f381e8
post请求
【请求⾏】
POST /myApp/success.html HTTP/1.1
【请求头】
Accept: text/html, application/xhtml+xml, */*
X-HttpWatch-RID: 37569-10012
Referer: http://localhost:8080/myApp/login.html
Accept-Language: zh-Hans-CN,zh-Hans;q=0.5
User-Agent: Mozilla/5.0 (MSIE 9.0; qdesk
2.4.1266.203; Windows NT 6.3; WOW64;
Trident/7.0; rv:11.0) like Gecko
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: localhost:8080
Content-Length: 27
Connection: Keep-Alive
Cache-Control: no-cache
【请求体】
username=zs&password=123456
请求⾏
GET /myApp/success.html?
username=zs&password=123456 HTTP/1.1
POST /myApp/success.html HTTP/1.1
请求⽅式
(8
种
,put,delete
等
)
GET:
明⽂传输
,
不安全
,
参数跟在请求路径后⾯
,
对请求参数 ⼤⼩有限制,
POST:
暗⽂传输
,
安全⼀些
,
请求参数在请求体⾥
,
对请求参 数⼤⼩没有有限制,
URI:
统⼀资源标识符(即:去掉协议和
IP地址部分)
协议版本
:HTTP/1.1
请求头
从第
2
⾏到空⾏处,都叫请求头
,
以键值对的形式存在
,
但存在⼀个key
对应多个值的请求头
.
作⽤:浏览器告诉服务器⾃⼰相关的设置.
Accept:
浏览器可接受的
MIME
类型
,
告诉服务器客户端能接收什么样类型的⽂件。
User-Agent
:
浏览器信息
.(
浏览器类型
,
浏览器的版本
....)
Accept-Charset:
浏览器通过这个头告诉服务器,它⽀持哪种字符集
Content-Length:
表示请求参数的⻓度
Host:
初始
URL
中的主机和端⼝
Referrer
:
从哪⾥⾥来的
(
之前是哪个资源
)
、防盗链
Content-Type
:
内容类型
,
告诉服务器
,
浏览器传输数据的MIME类型,⽂件传输的类型
,application/x-www-formurlencoded .
Accept-Encoding:
浏览器能够进⾏解码的数据编码⽅式, ⽐如gzip
Connection:
表示是否需要持久连接。如果服务器看到这⾥ 的值为“Keep -Alive”
,或者看到请求⽤的是
HTTP 1.1 (HTTP 1.1
默认进⾏持久连接
)
Cookie
:
这是最重要的请求头信息之⼀
(
会话技术
,
后⾯会有专⻔的时间来讲的)
Date
:
Date: Mon, 22Aug 2011 01:55:39 GMT
请求时间
GMT
请求体
只有请求⽅式是
post
的时候
,
才有请求体
.
即
post
请求时
,
请求 参数(
提交的数据
)
所在的位置
⼩结
1.
请求⾏
1. 请求⽅式
2. 请求路径
2.
请求头
:
它是由键值对构成
3.
请求体
:
只有
post
请求才有请求体,
post
请求的请求体是 ⽤于携带请求参数的
响应部分
讲解
响应部分
【响应⾏】
HTTP/1.1 200
【响应头】
Accept-Ranges: bytes
ETag: W/"143-1557909081579"
Last-Modified: Wed, 15 May 2019 08:31:21 GMT
Content-Type: text/html
Content-Length: 143
Date: Sun, 08 Dec 2019 02:20:04 GMT
【响应体】
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
Success
</body>
</html>
响应⾏
HTTP/1.1 200
协议
/
版本
响应状态码
(
记住
-
背诵下来
)
![](https://img-blog.csdnimg.cn/direct/1362bc5774144fb4a9b62dddb3b39921.png)
200:
正常
,
跟服务器连接成功,发送请求成功
302:
重定向
(
跳转
)
304:
读取缓存,表示客户机缓存的版本是最新的,客户机 可以继续使⽤它,⽆需到服务器请求.
读取缓存
403: forbidden
权限不够,服务器接收到了客户端的请 求,但是拒绝处理
404:
服务器接收到了客户端的请求,但是我服务器⾥⾯没 有你要找的资源
500:
服务器接收到了客户端的请求,也找到了具体的资源 处理请求,但是处理的过程中服务器出异常了
响应头
响应头以
key:vaue
存在
,
可能多个
value
情况
.
服务器指示浏览 器去⼲什么,
去配置什么
.
Location
:
http://www.it315.org/index.jsp
指示新的资源 的位置
,
通常和状态
,
码
302
⼀起使⽤,完成请求重定向
Content-Type
: text/html; charset=UTF-8;
设置服务器发 送的内容的MIME
类型
,
⽂件下载时候
a.mp3 b.mp4
Refresh
: 5;url=
http://www.baidu.com
指示客户端刷新 频率。单位是秒 eg:
告诉浏览器
5s
之后跳转到百度
Content-Disposition
: attachment; filename=a.jpg
指示客户端(
浏览器
)
下载⽂件
Content-Length:80
告诉浏览器正⽂的⻓度
Server:apachetomcat
服务器的类型
Content-Encoding: gzip
服务器发送的数据采⽤的编码类 型
Set-Cookie:SS=Q0=5Lb_nQ;path=/search
服务器端发送 的Cookie
Cache-Control: no-cache (1.1)
Pragma: no-cache (1.0)
表示告诉客户端不要使⽤缓存
Connection:close/Keep-Alive
Date:Tue, 11 Jul 2000 18:23:51 GMT
响应体
⻚⾯展示内容
,
和⽹⻚右键查看的源码⼀样
⼩结
1.
响应⾏:包含响应状态码
1. 常⻅的响应状态码
:
1. 200 OK
2. 302 Redirect 重定向
3. 304 Cache 读取缓存
4. 400 BAD REQUEST 请求有问题(
可能是请求参数等等不符合规定)
5. 403 Forbidden 拒绝处理
6. 404 NOT FOUND 找不到资源
7. 500 SERVER ERROR 服务器异常
2.
响应头
:
由多个键值对构成
3.
响应体
:
1. 可以⽤于客户端⻚⾯的展示
2. 可以⽤于下载