1.http介绍
http(hyper text transfer protocol) (超文本传输协议) HTTP协议位于TCP/IP协议的应用层。
HTTP是一个客户端和服务器端请求和答应的标准,主要用于从万维网服务器端传输超文本到本地(www,world wide web)
服务器传输超文本到本地浏览器之间的请求数据和响应数据的协议。客户端通过使用网页浏览器或者其它的工具发起一个HTTP请求到服务器上的指定端口默认端口是80,服务器在收到请求之后,返回响应内容
HTTP协议是基于TCP协议来进行数据传输的。
2.http发展
HTTP协议已经演化出了很多版本,它们中的大部分都是向下兼容的。客户端在请求的开始告诉服务器它采用的协议版本号,而后者则在响应中采用相同或者更早的协议版本。现在大多使用的都是1.1版本。
1.0版本: HTTP 协议非常老的标准,为了提高系统的效率,HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。正式因为这种特性造成了一些性能上的缺陷。
1.1版本: 克服了HTTP 1.0的缺陷,HTTP 1.1支持持久连接(HTTP/1.1的默认模式使用带流水线的持久连接),在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。同时还增加更多的请求头和响应头来改进和扩充HTTP 1.0的功能(如POST请求头字段等)。
2.0版本: 2015年5月作为互联网标准正式发布。主要新增如下特性:多路复用,二进制分帧,首部压缩,服务端推送。
3.HTTP状态码
1xx消息—— 请求已被服务器接收,继续处理
2xx成功 —— 请求已成功被服务器接收、理解、并接受
3xx重定向 —— 需要后续操作才能完成这一请求
4xx请求错误 —— 请求含有词法错误或者无法被执行
5xx服务器错误 —— 服务器在处理某个正确请求时发生错误
200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,比如:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //由于超载或系统维护,服务器暂时的无法处理客户端的请求
在linux上搭建http服务
①,安装软件: yum install httpd
②,设置防火墙策略等(当防火强开启时)
③,进配置文件进行配置,目录应该是。html结尾的
主配置目录:/etc/httpd/*
子配置目录:/etc/httpd/conf.d
主配置文件介绍:
listen 80 监听端口
user apach 进程属主
group apach 进程属组
servername 服务名
<directory / > 目录标签
allowoverride none 可以覆盖之前的配置
require all granted 禁止访问根
</directory> 结尾标记
ssl认证 (https)是具有安全性的ssl加密传输协议
http和tcp之间插入了(tsl/ssl) 密码加密层
ssl 对应的时443端口
http需要使用到ca(certificate authority)证书
此证书中包含三个重要的文件key、 csr、 crt
key:服务器上的私钥文件
csr:证书的签名请求文件
crt:证书颁发机构(CA)签名后的证书,或者时开发者自己签名的证书,包含证书持有人的信息,持有的公钥,以及签署着的签名等信息。
在搭建https服务的时候需要在原来的配置文件的基础上添加ssl相应内容,可以在ssl的配置文件中找到
在搭建http服务时可以基于端口、ip、域名等访问,全凭个人喜好。
部分内容来自西安鸥鹏
部分原文:https://blog.csdn.net/china_jeffery/article/details/79495744