http协议/nginx
nginx配置项:worker_processes
accesss log 访问日志
error log 错误日志 404(页面不存在) 403(文件的权限问题)50x(nginx本身问题)
listen 端口
worker_connection 连接数
http(Hyper text transfer protocol)
应用层
哪些程序可以读懂http?
1.浏览器
2.爬虫模块–》requests
3.抓包工具
4.web服务器:nginx,flask,tomact,apache等
哪些具体的应用需要http?
web业务–》网站
三个问题
什么是http?
为什么要用http?
能用http干什么?
1.什么是http?
英文:Hyper Text Transfer Protocol
是一种按照URL指示,将超文本文档从一台主机(Web服务器)传输到另一台主机(浏览器)的应用层协议,以实现超链接的功能。
请求/响应交互模型
即一次敲打网址的后面的动作(http://www.sxtyu.com/index.html)
1.实际是分析超链接中的url
2.浏览器向DNS请求解析www.sxtyu.com的ip (DNS:Domain Name System)
(域名系统(服务)协议(DNS)是一种分布式网络目录服务,主要用于域名与 IP 地址的相互转换,以及控制因特网的电子邮件的发送。 )
3.dns将解析的ip传回浏览器
4.浏览器与服务器建立tcp连接
5.浏览器请求文档
6.服务器给出报文
7.释放TCP连接
8.浏览器显示index.html的内容
http的链接和无状态性
这个问题与http的版本相关
http1.0
无状态链接
先连接三次握手
发送请求
响应请求
释放连接
http1.1
keepalive_timeout(nginx中长连接配置)
可以使其在1.0的基础上不用急于断开连接,也就是引入了长连接的概念。
htpp报文结构
请求报文:一般从客户机向WEB服务器发送的请求报文。报文字段都是ASCII码。
request 请求报文字段:
host:纪录访问域名
user-agent:用户代理–》浏览器
connection:表示连接还是断开–》keepalive_timeout
Accept:浏览可以打开哪些类型的文件
Accept-Encoding:是否接受压缩文件等
响应报文:
从web服务器到浏览器的应答,报文字段都是ASCII码。
Server: nginx/1.19.0。
Date:Tue, 23 Jun 2020 09:03:33 GMT
content-type:text/css; charset=“utf-8”
content-lenth:90
等
301:数据被重定向
500: