一.HTTP是什么?
1.HTTP协议:HyperText Transfer Protocol,超文本传输协议
2.因特网上应用最为广泛的一种网络传输协议,用于从万维网服务器传输超文本到本地浏览器的传输协议,
所有的www文件必须遵守这个标准,
3.HTTP是一个基于TCP/IP通信协议来传递数据
二.HTTP有哪些特点?
1.HTTP协议工作在客户端-服务端架构上(b/s架构,这里的客户端仅指浏览器)
2.浏览器作为HTTP客户端通过url向HTTP服务端即Web服务器发送所有请求
3.HTTP默认端口号为80,但是你也可以改为8080或者其他端口
4.HTTP是无连接的,即每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接,
采用这种方式可以节省传输时间(用完即走,再用时必须重新发起请求,不存在占着茅坑的现象)
5.HTTP是无状态的,即对于事务处理没有记忆能力,如果后续处理需要前面的信息,则必须重传,
这样可能导致每次连接传送的数据量增大,另一方面,在服务器不需要先前信息时它的应答就较快
(这意味着每个请求都是独立的,即便是两个一模一样的请求也会被当做是两个请求)
6.HTTP是媒体独立的:即只要是客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送
扩展:浏览器记住密码,和记录访问IP是如何实现的?
三.HTTP请求有哪几部分组成?
一个HTTP请求一般有四部分组成:
1.HTTP请求的方法,比如是get还是post请求
2.正在请求的url,总得知道请求的地址是什么吧
3.请求头,包含一些客户端环境信息,身份验证信息等
4.请求体,也就是请求正文,请求正文中可以包含客户端提交的查询信息,表单信息
注意:一般来说请求头和请求体之间有一个空行,这个空行非常重要,它表示请求头已经结束,
接下来的内容便是请求体
四.HTTP的请求过程是什么样子的?
一个完整的HTTP请求过程,一般有以下七个步骤:
1.建立TCP连接接
2.Web浏览器向Web服务器服务器发送请求命令
3.Web浏览器发送请求头信息
4.Web服务器应答
5.Web服务器发送应答头信息
6.Web服务器向浏览器发送数据
7.Web服务器关闭TCP连接
五.什么是get和post请求?
get请求一般用于获取服务器的信息,它有以下特点:
1.使用url传递参数,也就是参数是可见的
2.对发送信息的数量也有限制,一般在2000个字符左右
post请求一般用于修改服务器上的资源,它有以下特点:
1.不使用url传递参数,即参数对用户是不可见的
2.对发送的信息数量是无限制的
注意:表单一般用post方式提交,post请求的参数一般都嵌入在请求体中,对用户是不可见的,
不过可以使用工具拦截,如fiddler等
六.HTTP响应有哪几部分组成:
一个HTTP请求一般有三部分组成:
1.一个数字或文字组成的状态码,用来显示请求成功还是失败
2.响应头,包含的信息有服务器类型,日期,时间见内容类型和长度等
3.响应体,也就是响应的正文
七.HTTP的状态码有哪些类型?
HTTP的状态码一般有3位数字构成,其类型如下:
1xx:信息类,表示收到Web浏览器请求,正在进一步处理中
2xx:成功,表示用户请求被正确接收,理解和处理
3xx:重定向,表示请求没有成功,客户必须采取进一步的动作
4xx:客户端错误,表示客户端提交的请求有错误,如404 NOT Found,请求的文件不存在
5xx:服务器错误,表示服务器不能完成对请求的处理