Web基础与HTTP协议

一、DNS与域名

1.DNS

  • 网络上交互是基于tcp/ip协议进行通信和连接的,每个主机在逻辑上有一个唯一位置标识(IP地址),物理地址为MAC地址
  • 由于IP地址是由32位二进制数字标识,不方便记忆。所以,以IP地址为基础发展出了符号化地址来代替解决方案,也就是域名

2.DNS解析方式

  1. **/etc/hosts:**负责快速解析的文件,包含了IP与主机之间的映射关系,在没有DNS服务器的情况下,只用本地/etc/hosts完成解析和映射,实现快速访问
  2. **/etc/resolv.conf:**DNS客户端的配置文件,主要用于设置DNS服务器的IP和域名,还包含了主机域名的搜素顺序等。主要是域名解析服务器使用的配置文件。
  3. **/etc/sysconfig/network-scripts/ifcfg-ens33:**也可以在网卡配置文件中定义DNS1= DNS2=

生效顺序: 1 hosts文件 2 网卡配置文件 3 /etc/resolv.conf

3.域名

3.1 域名的定义

标识一组主机并提供它们的有关信息的树形结构(主要确定了根在哪,就可以确定每个分支)

3.2 域名解析服务器作用

  • 保持和维护域名空间的程序
  • 响应解析器的请求

**解析端(客户端):**向DNS服务器发出请求的设备

二、Web服务器基础介绍

1.HTML

  • HTML叫做超文本标记语言,是一种规范,也是一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容。
  • HTML文件可以使用任何能够生成txt文件的文本编辑器来编辑,生成超文本标记语言文件,只用修改文件名后缀为".html"或".htm"即可。

2.网页基本概念

  1. **网页:**纯文本格式的文件,用html语言编写,在用户的浏览器中被"翻译"成网页形式显示出来
  2. **网站:**由一个一个页面构成的,是多个网页的结合体
  3. **主页:**打开网站后出现的第一个网页称为网站主页(或首页)
  4. **域名:**浏览网页时输入的网址
  5. **协议:HTTP/HTTPS,**用来传输网页的通信协议(是否加密),是一种通讯/交互的标准/规范,HTTP默认端口号:80(可修改);HTTPS默认端口号:443(可修改)
  6. **URL:**是一种万维网寻址系统(唯一标识性)例:https://www.baidu.com/
  7. **URI:例:**https://www.baidu.com/v/popular/all/?spm_id from=333.1007.0.0 从/v/之后就是URI
  8. **超链接:**将网站中的不同页面连接起来
  9. **发布:**将制作好的网页上传到服务器,供用户访问

3.Web概述

  • Web(World Wide Web)即全球广域网,也称为万维网
  • 一种分布式图形信息系统
  • 建立在Internet上的一种网络服务

3.1 Web1.0

以编辑为特征,网站提供给用户的内容是编辑处理后的,然后用户阅读网站提供的内容

这个过程是网站到用户的单向行为

3.2 Web2.0

更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是网站内容的制造者

加强了网站与用户之间的互动,网站内容基于用户提供,网站的诸多功能也由用户参与建设,

实现了网站与用户双向的交流与参与

4. 静态页面

4.1 静态页面定义

  • 静态页面是标准的HTML文件
  • 扩展名是.htm、.html 例如文本、图像、声音、Flash动画、客户端脚本和ActiveX控件及Java小程序等
  • 是网站建设的基础,早期网站一般都由静态网页制作
  • 没有后台数据库、不含程序和不可交互的网页
  • 相对更新起来比较麻烦,适用于一般更新较少的展示型网站

4.2 静态网页的特点

  • 每个静态网页都有一个固定的URL,且URL以.htm、.html、.shtml等常见形式为后缀,而不含有"?"
  • 网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页都是保存在网站服务器上的
  • 静态网页的内容相对稳定,容易被搜索引擎检索
  • 静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难
  • 静态网页的交互性较差,在功能方面有较大的限制
  • 页面浏览速度迅速,过程无需连接数据库,开启页面速度快于动态页面

5.动态页面

5.1 动态页面定义

  • 网页URL不固定,能通过后台与用户交互
  • 在动态网页网址中有一个标志性的符号------"?"
  • 常用的语言有PHP、JSP、Python、Ruby等

5.2 动态页面的特点

  • **交互性:**网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后WEB发展的大势所趋
  • **自动更新:**无须手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量
  • 当不同的时间,不同的人访问同一网址时会产生不同的页面

三、HTTP协议

1.HTTP协议简介

  • HTTP(超文本传输协议HyperText Transfer Protocol)协议是互联网上应用最为广泛的一种网络协议,
  • 它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务端进行数据传输的一种规则。
  • HTTP是应用层上的协议,建立在传输层TCP之上,客户端通过与服务端进行TCP连接,
    之后发送HTTP请求与接收HTTP响应都是通过访问Socket接口来调用TCP协议实现。

2.HTTP协议的基本工作方式

  1. 建立连接: 客户端通过TCP/IP协议与服务器建立连接。通常情况下,客户端向服务器的80端口(默认HTTP端口)发送连接请求。(客户端和服务端进行tcp连接;三次握手建立)
  2. 发送请求: 一旦连接建立,客户端通过连接向服务器发送HTTP请求。HTTP请求由一个请求行和多个头部字段组成,请求行包含请求方法(GET、POST、等)、请求的资源路径和协议版本。(客户端通过发送http请求,服务端接受请求后,响应客户端的请求)
  3. **服务器处理请求:**服务器收到客户端发送的HTTP请求后,根据请求的内容进行相应的处理。(socket接口,通过端口进行通信)
  4. **服务器返回响应:**服务器对请求进行处理后,会生成一个HTTP响应。HTTP响应由一个响应行、多个头部字段和可选的消息体组成。响应行包含状态码,用于表示服务器对请求的处理结果。(响应到达客户端,解析的过程,用户查看使用访问)
  5. 传输数据: 一旦服务器生成了HTTP响应,它会通过之前建立的连接将响应返回给客户端。
    HTTP响应的消息体包含了请求的资源或者其他需要传输的数据。
  6. **关闭连接:**一旦响应发送完成,服务器会在HTTP头部字段中指定连接关闭方式。根据HTTP版本和服务器配置,连接可能会被立即关闭(短连接)或者保持持久连接(长连接)。(访问、使用,查看,结束之后,断开连接,四次挥手)
  7. 解析和显示响应: 客户端收到HTTP响应后,会解析响应内容并在用户界面上显示结果。
    这可能包括渲染HTML页面、显示图像、播放视频等。
  8. 继续请求(可选): 如果客户端需要获取更多资源,它可以继续发送HTTP请求,
    或者打开新的连接请求其他资源

3.HTTP 请求格式( GET / POST 方式 )

3.1 GET 方式

  1. **请求行:**请求的方式、请求的资源路径、请求的版本协议号
  2. **请求头:**描述信息/标准化信息

常用请求头:

请求头 描述
Accept 客户端可以接受的数据类型
Accept-Language 客户端可以接受的语言类型
Accpect-Encoding 客户端可以接受的编码格式
Connection 告诉服务器请求连接如何处理
Cache-Control 缓存时间,图片或音频文件保留在本地的缓存时间。
User-Agent 浏览器的信息
Host 表示请求的ip和端口号
Keep-Alive 通知服务器回传数据不要马上关闭,保持一小段的连接
Closed 马上关闭

3.2 POST方式

  1. **请求行:**请求的方式、请求的资源路径、请求的协议的版本号
  2. 请求头
  3. **请求体:**就是发送给服务器的数据
请求头 描述
Accept 客户端可以接受的数据类型
Accept-Language 客户端可以接受的语言类型
Referer 表示请求发起时,浏览器地址栏中的地址
User-Agent 浏览器的信息
Content-Type 发送的数据类型
Content-Length 发送的数据长度

4.HTTP状态码

HTTP 状态码(HTTP Status Code)是用以表示网页服务器 HTTP 响应状态的 3 位数字代码,当浏览器请求某一 URL 时, 服务器根据处理情况返回相应的处理状态。

状态码首位 已定义范围 分类
1xx 100-101 信息提示
2xx 200-206 成功
3xx 300-305 重定向
4xx 400-415 客户端错误
5xx 500-505 服务器错误

HTTP 常见状态码:

状态码 功能描述
200 一切正常
301 请求的永久页面跳转
304 重定向到缓存
403 禁止访问
404 请求页面找不到
500 服务器内部错误
502 网关失效
503 服务不可用
504 网关请求超时

四、通信套接字(socket)

  • 实现不同主机之间进行通信和数据交换

  • 进程之间传输的标志:IP地址和端口号,合称为套接字地址 socket address

4.1 http协议中socket的作用

  • 客户机套接字地址定义了一个唯一的客户进程
  • 服务器套接字地址定义了一个唯一的服务器进程

4.2 套接字调用的相关接口

|-----------|---------|
| socket() | 创建一个套接字 |
| bind() | 绑定IP和端口 |
| listen() | 监听 |
| accept() | 接收请求 |
| connect() | 请求连接建立 |
| write() | 发送 |
| read() | 接收 |
| close() | 关闭连接 |

相关推荐
SPC的存折3 小时前
1、Redis数据库基础
linux·运维·服务器·数据库·redis·缓存
爱学习的小囧4 小时前
VMware ESXi 6.7U3v 新版特性、驱动集成教程和资源包、部署教程及高频问答详情
运维·服务器·虚拟化·esxi6.7·esxi蟹卡驱动
小疙瘩4 小时前
只是记录自己发布若依分离系统到linux过程中遇到的问题
linux·运维·服务器
dldw7775 小时前
IE无法正常登录windows2000server的FTP服务器
运维·服务器·网络
我是伪码农5 小时前
外卖餐具智能推荐
linux·服务器·前端
汤愈韬6 小时前
下一代防火墙通用原理
运维·服务器·网络·security
IMPYLH6 小时前
Linux 的 od 命令
linux·运维·服务器·bash
数据雕塑家8 小时前
Linux下大文件切割与合并实战:解决FAT32文件系统传输限制
linux·运维·服务器
IMPYLH8 小时前
Linux 的 nice 命令
linux·运维·服务器·bash
yleihj9 小时前
vCenter计算机SSL证书续期
服务器·网络协议·ssl