URI (Uniform Resource Identifiers)统一资源定位符
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
HTTP协议工作于客户端-服务端架构上(简称B-S架构)默认端口是80
HTTP三点注意事项:
HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。
HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
什么是HTTP协议无状态协议?怎么解决HTTP协议无状态协议?
(1)、无状态协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息
(2)、无状态协议解决办法: 通过1、Cookie 2、通过Session会话保存。
HTTP协议是由请求报文和响应报文组成
请求报文格式:
1 请求首行-——》请求方式 请求路径 协议和版本,例如:GET /index.html HTTP/1.1
2 请求头信息——》请求头名称:请求头内容,即为key:value格式,例如:Host:localhost
3 空行——》用来与请求体分隔开
4 请求体——》GET没有请求体,只有POST有请求体。
响应报文格式:
响应首行——》HTTP/1.1 200 OK:响应协议为HTTP1.1, 状态码为200 表示请求成功 OK是对状态码的解释
响应头信息
空行
响应体
HTTP请求方式有哪些?
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
GET:用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器
POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式
PUT:传输文件,报文主体中包含文件内容,保存到对应URI位置
HEAD:获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效
DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件
OPTIONS:查询响应URI支持的HTTP方法
HTTP协议中http1.0和http1.1的区别?
在http1.0中,当建立连接后,客户端发送一个请求,服务器端返回一个信息后就关闭连接,当浏览器下次请求的时候又要建立连接,显然这种不断建立连接的方式,会造成很多问题。
而http1.1版本允许多个HTTP请求复用一个TCP连接,以加快传输速度。
HTTP常见状态码有哪些?
200:请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中
302:重定向,当响应码为302时,表示服务器要求浏览器重新再发一个请求,服务器会发送一个响应头Location,它指定新请求的URL地址
404:请求的资源没有找到,说明客户端错误的请求了不存在的资源(只要是4开头的错误都是客户端的问题)
500:请求资源找到了,但服务器内部出现了错误(只要是5开头的错误都是服务端的问题)