JavaWeb学习-Tomcat系列-7-HTTP协议简单了解
这篇来简单学习下HTTP协议内容,很多测试招聘,JD写的要求是熟悉HTTP协议,通过本篇,算是基本掌握HTTP协议的几个大的内容。
HTTP协议概述
HTTP是HyperText Transfer Protocol(超文本传输协议)的简称,主要传输HTML文件,用于定义WEB浏览器与WEB服务器之间交换数据的过程及数据本身的格式。
HTTP协议简单来说分两大部分,请求和响应,HTTP就是封装了请求和响应的数据。
请求部分
我们先来在浏览器输入百度首页,然后按下F12,看看这个请求过程
这个图片截图有点小,你自己对照你浏览器看,我这里是使用了火狐浏览器。
请求部分包含三部分:请求消息行、请求消息头、消息正文, 这三个部分其实在下面介绍的响应部分也有。我们拆分上面这张图,一个一个来学习。
请求消息行:
一般来说请求消息行,里面可以得到请求地址和请求方法以及协议版本这三个内容。当然不同调试工具中请求消息行内信息可能不太一样,但是这三样都是有的。
请求消息头:
这个就是请求消息头,简单挑里面几个了解一下,没必要去细究每一个的含义。Accept指的是告诉服务端,我们请求客户端能够接受什么样的格式,这里text/plain就是一个格式。Accept-language:就是告诉服务器,我这边可以接受几种不同的语言的支持,这个语言个数多少取决于你的浏览器语言添加了多少种。Host:告诉请求的网络主机是baidu,User-Agent:表示请求支持的浏览器,这里我们看到了我使用的浏览器是win10上的火狐60版本。
请求消息正文:
当请求是POST类型的时候才能看到请求消息正文。这里暂时没有找到合适的例子。
响应部分
响应消息行
响应消息行中一定有状态码的消息,有些软件也有http协议版本,就和上面一样。这个常见HTTP状态码的含义我们需要关注一下。
这里贴一个文档,关于介绍HTTP响应状态码的介绍
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status
主要分层几类:
1开头响应码:消息响应,很少看到这种状态码
2开头响应码:指成功响应
3开头响应码:指重定向,例如304表示不需要从数据库取数据,和上次请求相比,没有变化
4开头响应码:指客户端响应,401未授权,例如没有登录,404没有这样资源
5开头响应码:指服务器端响应,500,服务器内部错误。
响应消息头
消息消息头可以看到这些信息Content-type是text/html类型,还有响应时间和cookies等,cookies我们还没有学,后面来学习。
响应消息正文
这个就是响应的消息正文,常见的响应消息正文有html内容,xml内容,还有json格式内容。一般来说,一个网页的请求,响应的数据一般是这个网页本身的源码,也就是html源码,和我们手动右键这个网页,选择查看源码内容差不多。