一、HTTP协议用于定义客户端与web服务器数据传输协议的规范
1、超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。
2、请求:浏览器发送数据给服务器
响应:服务器接受并解析请求,服务器发送数据给浏览器
3、注意:一个请求有且只有一个响应
要求:不同服务器发送的响应格式必须一致
4、c和s如何数据连接
使用socket技术:底层走的是tcp/ip协议,三次握手,
tcp/ip协议:关注的s和c之间数据是否传输是否正确
http协议:关注数据格式是否正确
5、telnet 远程访问工具,模拟浏览器向服务器发送请求
telnet 主机地址 端口,ctrl ]回车键--看到回显,输入请求内容,再回车
二、HTTP请求
1、一个完整的HTTP请求包括如下内容:一个请求行、若干请求头(由键值对组成)、以及实体内容,注意:请求另外一个的资源就是一个请求,因为浏览器的缓存,多个同样的图片属于一个请求,提高页面的加载效率
2、其中的一些消息头和实体内容都是可选的,
3、消息头和实体内容之间要用空行隔开
三、HTTP1.0协议和HTTP1.1协议区别
在HTTP1.0协议中,客户端与web服务器建立连接后,在一个连接上可以发送一次请求
HTTP1.1协议,允许客户端与web服务器建立连接后,在一个连接上可以发送多次请求(所有浏览器都支持)
四
请求资源
URL:统一资源定位符,只能定位互联网资源,是URI的子集
URI:统一资源标志符,用于标志任何资源.
URL=协议+主机+端口+URI
请求方式
1、请求方式有:POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT
2、如请求方式为GET方式,则可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔,例如:GET /mail/1.html?name=abc&password=xyz HTTP/1.1
GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量不能超过1K,不适合提交敏感数据
如请求方式为POST方式,则可以在请求的实体内容中向服务器发送数据,多个数据之间以&进行分隔,例如:
POST /servlet/ParamsServlet HTTP/1.1
Host:
Content-Type: application/x-www-form-urlencoded
Content-Length: 28
name=abc&password=xyz
Post方式的特点:传送的数据量无限制。
编码问题:
字符(utf-8):看得到的东西
数据只能通过字节传输
五、HTTP响应
1、一个HTTP响应代表服务器向客户端回送的数据,它包括:一个状态行、若干响应头、以及实体内容
2、其中的一些消息头和实体内容都是可选的
3、消息头和实体内容之间要用空行隔开
六、状态码和状态描述
状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为5类,如下所示
100~199表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程
200~299 表示成功接收请求并已完成整个处理过程,常用200
300~399为完成请求,客户需进一步细化请求。例如,请求的资源已经移动一个新地址,常 用302、307和304
400~499客户端的请求有错误,常用404
500~599服务器端出现错误,常用 500
七、请求重定向(浏览器向服务器发两次请求)
1、请求重定向指:一个web资源收到客户端请求后,通知客户端去访问另外一个web资源,这称之为请求重定向。
2、服务器向浏览器返回302+location,浏览器认识302状态码,会再次向服务器发出一个请求,请求地址是location的value的地址