web基础和http协议
一、web概述
1.定义
Web,全称为World Wide Web,即全球信息网、万维网,是一个由许多互相链接的超文本组成的系统,是一种分布式图形信息系统。
2.组成部分
-
URL
URL(统一资源定位符):用于标识Web上的资源。
https://www.baidu.com/ #URL 链接地址
#协议 https://
#域名 www.baidu.com/
-
HTTP
HTTP(超文本传输协议):用于在Web上传输数据。
-
HTML
HTML(超文本标记语言):用于创建网页的结构和内容。
<title> 定义文档的标题 </title>
<base> 页面链接的默认地址 </base>
<meta> html文档中的元数据 </meta>
<script> 客户端的脚本文件 </script>
-
CSS
CSS(层叠样式表):用于控制网页的布局和外观。
-
JavaScript
JavaScript:一种编程语言,用于增强网页的交互性和动态功能。
3.Web的技术架构
客户端-服务器模型
- 客户端(通常是浏览器)向服务器发送请求,服务器处理请求并返回响应。
分布式系统
- 利用多个服务器和数据中心协同工作,以提高网站的可用性和性能。
云计算与微服务架构
- 利用云服务提供商的计算资源和弹性扩展能力来构建和维护Web应用。
4.Web的发展历程
-
Web 1.0
静态网页:纯页面模式(只读)单向行为。
静态页面的特点
- 固定的URL
- 页面就是一个纯文本的用HTML语言编译的文件
- 静态页面没有后台数据库
- 静态页面不能实现交互
- 访问速度快,更新起来比较麻烦
-
Web 2.0
交互性与动态网页,更注重用户的交互,用户既是网站内容的消费者,同时也是网站内容的制造者。
动态页面的特点
- 交互性,网页会根据用户的要求和操作进行相应,甚至改变页面的内容
- 自动更新
- 不同时间不同的人看到的页面会发生变化
-
Web 3.0
开放数据与API经济;云计算服务(如AWS、Azure、Google Cloud)的兴起降低了Web开发的门槛,提供了弹性可扩展的基础设施;Progressive Web Apps (PWA)概念的提出,使得Web应用能够提供类似原生应用的体验,包括离线访问、推送通知等功能。
5.网页及相关概念
网页
编程语言(HTML语言)编译而成的前端页面,纯文本格式文件,浏览器翻译纯文本格式的文件,便于用户进行浏览。
网站
由多个页面构成的,是网页的一个结合体。
首页
网站在设计时,已经设计好了的,用户打开该站点默认的页面。
链接
URL;
超链接:将网站中的不同页面链接起来,形成一个内部的连接。
二、http协议
1.相关概念
协议:就是内容信息之间传播的规则和标准。
http协议
超文本传输协议,客户端和服务端之间进行数据传输的一种规则。http是应用层的协议,建立在传输层的tcp之上,客户端和服务端之间通过tcp协议建立连接,应用层上使用http协议进行数据传输,通过指定的端口来进行通信。http端口80
https协议
是加密的http,加密的超文本传输协议。在数据传输之前要通过证书进行身份验证,验证通过才可以进行数据传输。https端口443
cookie协议
浏览器提供的协议功能,cookie的信息不是保存在网站的,保存在浏览器本地(计算机里),保存用户的登录状态,跟踪统计用户访问网站的习惯,是一个很小的文件,主要的作用就是保存用户的信息。
2.http建立连接的过程
-
DNS解析
客户端向DNS服务器发送域名解析请求,DNS服务器返回目标服务器的IP地址。
解析的方式
- 运营商
- 本地配置/etc/hosts #人工配置的域名和ip地址之间的映射关系
- /etc/resolv.conf #DNS服务器的ip地址 bind 内网解析域名和ip地址之间的关系
-
建立TCP连接
客户端和服务端通过tcp协议建立连接,客户端向服务端的80端口发送连接请求 ,三次握手的过程(SYN, SYN-ACK, ACK)。
-
发送HTTP请求
客户端通过已建立的TCP连接向服务器发送HTTP请求报文。请求报文包括请求行(请求方法、URL、HTTP版本)、请求头和可能的请求体。
请求头和请求体符号 | 说明 |
method | 客户端的请求方式(get post) |
path | 客户端请求的路径 |
scheme | 请求的加密方式(https) |
Accept | 客户端请求之后,服务端需要响应客户端,客户端能够接受的数据类型 |
host | 显示请求客户端的ip地址 |
proxy-connection | 告诉服务端如何对请求连接处理 |
keep-alive | 服务端响应请求,并且传输完数据之后,不要立刻关闭连接,保持连接一段时间(tcp连接),保持时间一般60-180s |
user-agent | 客户端请求的工具信息(浏览器的信息) |
-
服务器响应
服务器解析请求报文,处理请求,根据请求体当中的内容进行处理并生成响应。
-
服务器返回响应的数据
响应通常包括状态行(HTTP版本、状态码、状态消息)、响应头和响应体。
请求的方式
get | post | |
不同之处 | 是客户端向服务端请求的默认方式,请求数据 | 是向服务端发送数据,是向服务端添加或者是修改数据 |
请求是可以被缓存的 | post的数据是 没有办法进行缓存的 | |
请求字段的长度是有限的 | 请求字段没有长度限制 | |
请求的字段会显示在URL中,不太安全 | 请求的查询字段在URL中是不显示的 |
状态码
状态码指的是服务端对客户端请求的响应结果。
1xx 信息提示
2xx 200-206 200表示成功,客户端发送的请求服务端能够成功的处理
3xx 300-305 重定向 (跳转页面)
4xx 400-415 客户端错误
5xx 500-505 服务端错误
状态码 | 含义 |
200 | 请求成功 |
301 | 永久重定向 |
302 | 临时重定向 |
304 | 表示访问的是缓存 |
403 | 客户端没有权限访问服务端的页面 |
404 | 客户端请求的页面不存在 |
500 | 内部服务器错误 |
502 | 网关失效 |
503 | 当前服务不可用 |
504 | 网关请求超时 |
如果遇到502网关失效该如何解决?
- 检查网络
检查本地网络连接,尝试重启路由器或调整网络设置;
检查DNS解析,确保域名正确解析到服务器的IP地址;
- 检查防火墙和安全软件
查看防火墙规则没有阻止正常的通信;
关闭安全软件或防火墙,看是否解决了问题;
- 检查配置文件
检查服务器的网络配置文件(是否有语法错误)、端口设置(端口是否被占用导致服务没有启动)等。
-
数据传输
双方通过tcp建立的连接传输数据。
-
关闭TCP连接
数据传送完毕之后,关闭连接。