1.什么是Http
超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。
2.认识 URL
我们俗称的网址就叫做URL
URL的格式:协议(http/https): // 服务器地址(ip/域名) : 端口号 / 目录地址 / 页面 ? 参数
其中,端口号为默认端口号的话,可以省略,比如,http的默认端口号为80,https的默认端口号为443
3.Http协议格式
分为两部分:
request:有四部分(首行,请求头,空行,body)
- 首行:[方法] + [url] + [版本]
- Header:请求的属性,冒号分割的键值对;每组属性之间使用\n分隔
- 空行:标识header的结束
- Body:空行后面的内容都是Body。
response:有四部分(首行,响应头,空行,body)
- 首行:[版本号] + [状态码] + [状态码解释]
- Header:请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔
- 空行:表示Header部分结束
- Body:空行后面的内容都是Body,Body允许为空字符串。如果服务器返回了一个html页面, 那么html页面内容就是在body中
4. http的方法
- get:客户端向服务端发起请求,获得资源。请求获得URL处所在的资源。
- post:向服务端提交新的请求字段。请求URL的资源后添加新的数据。
- head:请求获取URL资源的响应报告,即获得URL资源的头部
- patch:请求局部修改URL所在资源的数据项
- put:请求修改URL所在资源的数据元素。
- delete:请求删除url资源的数据
HTTP常见Header
- Content-Type: 数据类型(text/html等)
- Content-Length: Body的长度
- Host:客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上;
- User-Agent: 声明用户的操作系统和浏览器版本信息;
- referer:当前页面是从哪个页面跳转过来的;
- location: 搭配3xx状态码使用, 告诉客户端接下来要去哪里访问;
- Cookie:用于在客户端存储少量信息. 通常用于实现会话(session)的功能;
5.常用状态码
其中比较常用的是:
6.Http VS Https
什么是Https
HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。
PS:TLS是传输层加密协议,前身是SSL协议,由网景公司1995年发布,有时候两者不区分。
HTTP特点:
- 无状态:协议对客户端没有状态存储,对事物处理没有“记忆”能力,比如访问一个网站需要反复进行登录操作
- 无连接:HTTP/1.1之前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接。比如某个客户机在短时间多次请求同一个资源,服务器并不能区别是否已经响应过用户的请求,所以每次需要重新响应请求,需要耗费不必要的时间和流量。
- 基于请求和响应:基本的特性,由客户端发起请求,服务端响应
- 简单快速、灵活
- 通信使用明文、请求和响应不会对通信方进行确认、无法保护数据的完整性
HTTPS特点:
- 内容加密:采用混合加密技术,中间者无法直接查看明文内容
- 验证身份:通过证书认证客户端访问的是自己的服务器
- 保护数据完整性:防止传输的内容被中间人冒充或者篡改
- 收方能够证实发送方的真实身份;
- 发送方事后不能否认所发送过的报文;
- 收方或非法者不能伪造、篡改报文。
Http VS Https
- https协议需要到CA申请证书,一般免费证书很少,需要交费。
- http是超文本传输协议,信息是明文传输;https则是具有安全性的ssl加密传输协议。
- http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
- http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
- http默认使用80端口,https默认使用443端口