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() 关闭连接

你可能感兴趣的:(http,服务器,网络协议)