javaweb(06): 初步了解http协议
什么是http协议
官方解释
- HTTP(hypertext transport protocol),即超文本传输协议。这个协议详细规定了浏览器和万维网服务器之间互相通信的规则。
- 客户端与服务器通信时传输的内容我们称之为报文。
- HTTP就是一个通信规则,这个规则规定了客户端发送给服务器的报文格式,也规定了服务器发送给客户端的报文格式。客户端发送给服务端的成为“请求报文”,服务端发生给客户端的称为“响应报文”
简单理解
就像写信一样,你的信封上的书写的地址收信人邮编寄信人等规则,相当于HTTP协议定义的规则,信的内容可以理解为报文。你的boss写信给你让你做事,信的内容理解为请求报文;你不敢不回,看到信后立马回信,信的内容是响应报文。
报文格式
请求报文
get请求
get请求没有空行。
get请求会把数据以键值对方式追加到地址栏,适合传输少量数据。
1.请求行
(1) 请求的方式 GET
(2) 请求的资源路径[+?+请求参数]
(3) 请求的协议的版本号 HTTP/1.1
2.请求体(实际追加到)
key : value 组成 。不同的键值对,表示不同的含义。
post请求
请求行
(1) 请求的方式 POST
(2) 请求的资源路径[+?+请求参数]
(3) 请求的协议的版本号 HTTP/1.1
请求头
- key : value 不同的请求头,有不同的含义
空行
请求体 ===>>> 就是发送给服务器的数据
常用请求头的说明
Accept: 表示客户端可以接收的数据类型
Accpet-Languege: 表示客户端可以接收的语言类型
User-Agent: 表示客户端浏览器的信息
Host: 表示请求时的服务器 ip 和端口号
常见get,post请求
get
-
form 标签 method=get
-
a 标签
-
link 标签引入 css
-
Script 标签引入 js 文件
-
img 标签引入图片
-
iframe 引入 html 页面
-
在浏览器地址栏中输入地址后敲回车
post
form 标签 method=post
响应报文
响应的HTTP格式
响应行
(1) 响应的协议和版本号
(2) 响应状态码
(3) 响应状态描述符
响应头
(1) key : value 不同的响应头,有其不同含义
空行
响应体 ---->>> 就是回传给客户端的数据
常用的响应码
-
200 表示请求成功
-
302 表示请求重定向(明天讲)
-
404 表示请求服务器已经收到了,但是你要的数据不存在(请求地址错误)
-
500 表示服务器已经收到请求,但是服务器内部错误(代码错误)
请求码有这四类:
- 以2开始的响应码,都表示的是成功
- 以3开始的响应码,都表示的是需要重新请求另外一个资源
- 以4开始的响应码,都表示的是资源未找到
- 以5开始的响应码,都表示的是服务器内部出错(代码错了)
MIME类型说明
**MIME 是 HTTP 协议中数据类型。 **
MIME 的英文全称是"Multipurpose Internet Mail Extensions" 多功能 Internet 邮件扩充服务。MIME 类型的格式是“大类型/小 类型”,并与某一种文件的扩展名相对应。
常见的MIME类型
文件 | MIME类型 |
---|---|
超文本标记语言 | .html,.htm text/html |
普通文本 | .txt text/plain |
RTF文本 | .rtf application/rtf |
GIF图形 | .gif image/gif |
JPEG图形 | .jpeg .jpg image/jpeg |
au声音文件 | .au audio/basic |
MIDI音乐文件 | .mid,.midi audio/midi, audio/x-midi |
RealAudio音乐文件 | .ra,.ram audio/x-pn-realaudio |
MPEG文件 | .mpg, .mpeg video/mpeg |
avi文件 | .avi video/x-msvideo |
GZIP文件 | .gz application/x-gzip |
TAR文件 | .tar application/x-tar |