模拟面试之http协议

HTTP协议
Hyper Text Transfer Protocal 超文本传输协议。
定义了客户端和服务器端通信时,发送数据的格式。

请求
浏览器(客户端)往服务器发送数据 ---- 请求
请求会携带着请求消息

响应
服务器往浏览器(客户端)回写 数据---- 响应
响应会携带着响应消息

这个协议就规定了请求消息和响应消息的格式。

HTTP协议的特点
1:基于TCP/IP的高级协议,因为TCP是需要三次握手,是安全的协议,HTTP基于TCP,则HTTP也是安全的协议。
2:默认端口号80。
3:基于请求/响应模型,一次响应对应一次请求。
4:无状态协议。每次请求之间相互独立。这些请求之间不能交互数据。

HTTP的历史版本(了解)
1.0版本:一次请求需要一次连接。
1.1版本:复用连接。在一次请求后,客户端和服务器之间的连接不会马上断开,而是等待一段时间,如果一段时间内还有请求,则使用刚才请求的连接。

请求消息数据格式

组成部分:
1:请求行
2:请求头
3:请求空行 : 就是一个空行。分隔请求头和请求体。
4:请求体(又称请求正文)

请求行:请求信息的第一行
格式:请求方式 请求url 协议/版本
例如:GET /day0801/1.html HTTP/1.1

请求方式:
HTTP协议有7种请求方式,常用的有2种。
GET和POST。
GET:
1:请求参数在请求行中,在url后。
Eg:http://localhost:8080/annotationServlet_war_exploded/demo3?username=1
其中的username=1。
2:get会把参数放在url的后面。
3:没有请求体。
4:请求的url长度有限制。
5:不太安全
POST:
1:请求参数在请求体中。
2:post不会将参数放在url的后面。
3:有请求体。
4:请求的url长度没有限制。
6:相对安全

请求头:请求信息的第二行到空行结束
作用
浏览器告诉服务器一些信息。
格式🔑value (value可以是多个值)
请求头名称 冒号 空格 值
常见的请求头:
Accept: text/html,image/bmp --支持数据类型(服务器返回给浏览器的信息,且浏览器能解析的) text/html text/css text/javascript 大类型/小类型 mime类型。
Accept-Charset: ISO-8859-1 --字符集(accept的主语是浏览器)
Accept-Encoding: gzip --支持压缩
Accept-Language:zh-cn --语言环境
Host: www.itcast.cn:80 --访问主机
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT --缓存文件的最后修改时间
Referer:
http://www.itcast.com/index.jsp --来自哪个页面、防盗链(告诉浏览器,我(当前请求)从哪里来)
作用:
1:防盗链
比如我在优酷上看战狼2,点击优酷页面上的战狼2超链接,就可以进入优酷的战狼2视频播放界面。
但是一个别的网站上,也有一个连接,我点击该连接,就可以跳转到优酷的战狼2视频播放界面。
这样就损害了优酷的利益,则需要在优酷的战狼2视频播放界面增加一个判断,就是,跳转过来的页面
reference是否是优酷自己的,若不是,就不让其访问。
2:统计工作:
统计一下大家都是从哪个链接跳转到我这里来的。
User-Agent:(浏览器告诉服务器,我访问你使用的浏览器版本信息)
Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
可以在服务器端获取该头的信息,解决浏览器兼容的问题。简单来说,就是服务器根据浏览器不同的类型和版本,返回相对应的信息,使我们使用不同的浏览器所访问资源,得到的内容展示是一样的。
Cookie
Connection:Keep-Alive --链接状态
掌握的头信息:
Referer User-Agent Cookie If-Modified-Since

请求体:空行以下的内容
用来封装POST请求消息的请求参数的。
比如提交表单中填写并提交的参数。

响应:(response)
组成部分:
响应行 响应头 响应体
响应行:响应信息的第一行
格式:协议/版本 状态码 状态码说明
例如:HTTP/1.1 200 OK
状态码:
200 正常响应成功
302 重定向
304 读缓存
404 用户操作资源不存在
500 服务器内部异常
响应头:从响应信息的第二行到空行结束
格式:key/value(value可以是多个值)
常见的头
Location: http://www.it315.org/index.jsp --跳转方向 和302一起使用的,重定向
Server:apache tomcat --服务器型号
Content-Encoding: gzip --数据压缩
Content-Length: 80 --数据长度
Content-Language: zh-cn --语言环境
Content-Type: text/html; charset=GB2312 --返回数据的数据类型
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT --最后修改时间
Refresh: 1;url=http://www.it315.org --定时刷
Content-Disposition: attachment; filename=aaa.zip --下载
Set-Cookie:SS=Q0=5Lb_nQ; path=/search
Expires: -1 --缓存
Cache-Control: no-cache --缓存
Pragma: no-cache --缓存
Connection: Keep-Alive --连接
掌握的头信息
Content-Type Location Last-Modified Refresh Content-Disposition Set-Cookie

响应体:空行以下的内容
页面上展示的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值