1.1 是一种超文本传输协议,定义了浏览器如何向万维网请求文档,以及服务器如何把文档返回给浏览器。
1.2 是面向应用层协议。
(1) 客户端与服务端进行连接(三次握手),点击某个超级链接,Http 工作开始; (2) 建立连接后,客户端发送请求; (3) 服务器接收到请求,给与响应信息; (4) 客户端接收到返回的信息,通过浏览器显示出来,客户端与服务器断开连接。
URL:统一资源定位符,也可以称为网页地址 URL的组成: (1) 协议或成为服务方式(如:HTTP或HTTPS) (2) 存有该资源的主机的 IP地址(服务器的IP地址,有时也包括端口号) (3) 主机字眼的具体地址(如:目录或文件名) 如:http://127.0.0.1:8080/index.jsp 第一部分:http 第二部分:127.0.0.1:8080 第三部分:index.jsp 注意,第一和第二部分不可省略,并且用“:// ”隔开;第二和第三部分用 “/” 隔开,第三部分有时可以省略。
(1) 支持客户端/服务特点 (2) 简单快速; (3) 灵活:允许传入任意类型的数据对象 (4) 无连接:每一次请求发出到做出响应后,服务端和客户端会断开连接 (5) 无状态;每一次请求完成,对事物的处理没有记忆功能
OSI划分; (1) 物理层 (2) 数据链路层 (3) 网络层 (4) 传输层 (5) 会话层 (6) 表示层 (7) 应用层 TCP/IP划分: (1) 主机到网络层 (2) 网络层 (3) 传输层 (4) 应用层 根据规则,只有低层协议建立之后才能,才能进行更层协议的连接,因此,首先要建立TCP连接
在Http 1.1版本中支持7种请求方法:分别是GET、POST、PUT、DELETE、OPTIONS、TARCE和HEAD。 GET: 通过请求URI得到资源 POST: 用于添加新的内容 PUT: 用于修改某个内容 DELETE: 删除某个内容 OPTIONS: 询问可以执行哪些方法 TRACE: 用于远程诊断服务器 HEAD: 类似于GET, 但是不返回body信息,用于检查对象是否存在,以及得到对象的元数据
请求报文由4 个部分组成:请求行(request line) 、请求头(header)、空行和请求数据 (1)请求行:由请求方式 、 URL字段 、 HTTP协议版本组成 (2)请求头:由键值对表示,如get请求的请求头如下:
Accept:xxx 表示浏览器能接受的数据类型 Accept-Charset: xxx 浏览器可以接受的字符编码集 Referer:xxx 先前的网页地址 Accept-Language:xxx 浏览器接受的语言 Accept-Encoding:xxx 浏览器接受的数据压缩格式 User-Agent:xxx 包含发出请求的用户信息 Host:xxx 请求的服务器的域名和端口号 Connection:xxx 表示是否连接断开(HTTP 1.1协议默认保持长久连接) Cookie:xxx 浏览器通过这个值带数据给服务器(3)空行:通知请求头结束 (4)请求数据:在POST方法中使用
响应报文由3个部分组成:状态行(status-line)、响应头(headers)和响应正文(response-body) (1)状态行:HTTP-Version(协议版本) Status-Code(响应码) Reason-Phrase CRLF(响应码的描述) (2)响应头:
Accept-Ranges:xxx 表名服务器是否支持指定范围请求及哪种类型的分段请求 Content-Encoding:xxx 服务器支持的返回内容压缩的编码类型 Content-Language:xxx 响应体的语言 Content-Length:xxx 响应体的长度 Content-Location:xxx 请求资源的备用地址 Content-Type:xxx 返回内容的MIME类型 Date:xxx 服务器消息发出的时间 ETag:xxx 请求变量的实体标签当前值 Location:xxx 用于告诉浏览器找谁