目录
http协议(超文本传输协议):
针对网络上的客户端 与 服务器端在执行http请求的时候,遵守的一种规范。 其实就是规定了客户端在访问服务器端的时候,要带上哪些东西, 服务器端返回数据的时候,也要带上什么东西。
有1.0 和 1.1两个版本,两个版本区别:
- 1.0:请求数据,服务器返回后, 将会断开连接
- 1.1:请求数据,服务器返回后, 连接还会保持着。 除非服务器 | 客户端 关掉。 有一定的时间限制,如果都空着这个连接,那么后面会自己断掉。
一、HTTP请求
HTTP请求包括的内容:请求行、请求头、(一个空行)、请求体
- 请求行:请求方式+请求的路径+协议版本
//POST : 请求方式 ,以post去提交数据
POST /examples/servlets/servlet/RequestParamExample HTTP/1.1
/examples/servlets/servlet/RequestParamExample //请求的地址路径 , 就是要访问哪个地方。
HTTP/1.1 //协议版本
- 请求头:浏览器或服务器的环境信息
Accept: 客户端向服务器端表示,我能支持什么类型的数据。
Referer : 真正请求的地址路径,全路径
Accept-Charset:支持哪种字符集
Accept-Language: 浏览器支持的语言格式
Accept-Encoding: gzip, deflate : 支持的压缩格式 。
User-Agent: 用户代理 向服务器表明,当前来访的客户端信息。
Content-Type: 提交的数据类型。经过urlencoding编码的form表单的数据
Host : 访问那台主机
Content-Length: 数据长度
Connection : 请求完后时断开还是保持连接 ,Keep-Alive 保持连接
Cache-Control : 对缓存的操作
If-Modified-Since :缓存数据的时间
- 请求体:浏览器真正发送给服务器的数据
发送的数据呈现的是key=value ,如果存在多个数据,那么使用 &
firstname=zhang&lastname=sansan
二、HTTP响应
HTTP响应数据包含的内容:响应行、响应头、(一个空行)、响应体
- 响应行 :请求的结果
HTTP/1.1 200 OK
协议版本 :1.0 或 1.1
状态码 :咱们这次交互到底是什么样结果的一个code.
200 : 成功,正常处理,得到数据。
403 : for bidden 拒绝
404 : Not Found
500 : 服务器异常
OK :对应前面的状态码
- 响应头
Server: 服务器是哪一种类型。 Tomcat
Content-Type : 服务器返回给浏览器的内容类型
Content-Encoding :数据的压缩格式
Content-Length : 返回数据的长度
Content-Language :浏览器的语言环境
Content-Disposition :以下载的方式打开数据
Refresh :定时刷新
Transfer-Encoding :以分块方式回送
Expires :-1 控制浏览器不要缓存
Cache-Control :no-cache
Pragma :no-cache
Date : 通讯的日期,响应的时间
Location :浏览器跳转到哪
- 响应体 :回送的数据
注:在服务端设置响应头来控制浏览器的行为,一般用:response.setHeader (" "," ");
三、请求方式(get 和 post)
HTTP的请求方式有:GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT 共八种。
Get 和 Post请求区别:
- 请求路径不同。Post请求,在URL后面不跟任何数据;Get请求,在地址后面跟上数据
- 带数据的方式不同。Post请求会在请求体里使用流的方式写数据;Get请求则是在地址栏上跟数据
- 所能带的数据量不同。由于Post请求使用流的方式写数据,所以提交到服务器的数据量无限制;Get请求能带的数据量有限,1KB大小
四、HTTP 和 HTTPS
两者区别:
- HTTP: 80端口;不安全,信息明文方式传输。
- HTTPS:443端口;安全,使用TLS加密传输。