web基础与http协议

目录

一、域名

1、域名概述

2、域名注册

3、域名空间结构

4、DNS与域名

5、DNS解析方法

5.1 /etc/hosts

5.2 /etc/resolv.conf

5.3 /etc/sysconfig/network-scripts/ifcfg-ens33

5.4 DNS解析方法生效顺序

6、小结

二、网页

1、网页的概念

2、HTML

2.1 HTML超文本标记语言

2.2 HTML文档的结构

3、Web

3.1 web概述

3.2 web1.0 和web2.0

4、静态网页

5、动态网页

5.1 动态网页的特点

三、HTTP

1、HTTP协议概述

2、HTTP方法

3、HTTP状态码

4、HTTP 常见状态码

5、HTTP 请求流程分析

5.1 请求报文

5.2 常用的请求头

5.3 响应报文

5.4 常见响应头

6、http请求方式

6.1 GET方式

6.2 POST请求方式

6.3 GET与POST区别


一、域名

1、域名概述

  • 域名的概念:ip地址不易记忆
  • 早期使用hosts文件解析域名 (1)主机名称重复;(2)主机维护困难
  • DNS(域名系统)  (1)分布式;(2)层次性(dns解析过程就是层次性)

2、域名注册

■域名注册是Internet中用于解决地址对应问题的一种方法
■遵循先申请先注册原则
■域名注册步骤

3、域名空间结构

  • 根域
  • 顶级域(组织域;国家/地区域名)
  • 二级域名
  • FQDN=主机名.DNS后缀

4、DNS与域名

(1)网络是基于TCP/IP协议进行通信和连接的,每一台主机都有一个唯一的标识(固定的IP地址),用以区别在网络上成千上万个用户和计算机。网络在区分所有与之相连的网络和主机时,均采用一种唯一、通用的地址格式,即每一个与网络相连接的计算机和服务器都被指派一个独一无二的地址。

(2)为了保证网络上每台计算机的IP地址的唯一性,用户必须向特定机构申请注册,分配IP地址网络中的地址方案分为两套:IP地址系统和域名地址系统。这两套地址系统其实是一一对应的关系,由于IP地址是数字标识,使用时难以记忆和书写,因此在IP地址的基础上又发展出一种符号化的地址方案,来代替数字型的IP地址

5、DNS解析方法

5.1 /etc/hosts

linux系统中负责快速解析的文件,包含了ip与主机名的映射关系,在没有DNS服务器的情况下,使用本地/etc/hosts完成解析/映射,实现快速访问

PS:主要用于主机之间(IP和主机名)的映射/解析关系,实例:

5.2 /etc/resolv.conf

DNS客户端配置文件,主要用于设置DNS服务器的IP和域名,还包括了主机域名的搜索顺序等等,这个文件是由域名 解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件。

PS:主要用与匹配DNS服务器

5.3 /etc/sysconfig/network-scripts/ifcfg-ens33

我们也可以在网卡配置文件中定义DNS1= DNS2=

5.4 DNS解析方法生效顺序

1 hosts文件 ; 2 网卡配置文件 ; 3 /etc/resolv.conf

6、小结

  1. 网络上交互是基于rcP/IP协议的,每个主机在逻辑上:有一个唯一位置标识(IP地址),物理地址为wc地址
  2. 为了保证地址唯一性,用户协议向特地给机构申请注册,分配IP地址网络中的地址有两套方案: TP地址系统 和 域名地址系统;而由于IP是由32位二进制数字标识,不方便记忆,所以以IP地址为基础发展出了符号化地址来代替解决方案,也是是域名

二、网页

1、网页的概念

网页

  • 纯文本格式文件
  • 编写语言为HTML
  • 在用户的浏览器中被“翻译”成网页形式显示出来

网站

  • 由一个一个页面构成,是多个网页的结合体

主页

  • 打开网站后出现的第一个网页称为网站主页(或首页)

域名

  • 浏览网页是输入的网址

HTTP/HTTPS

  • 用来传输网页的通信协议(是否加密),是一种通讯/交互的标准/规范

URL

  • 是一种万维网寻址系统

HTML

  • 用来编写网页的超文本标记语言

超链接

  • 超链接是将网站中不同网页链接起来的功能

发布

  • 将制作好的网页上传到服务器供用户访问的过程

2、HTML

2.1 HTML超文本标记语言

  • Hyper Text Markup Language
  • 网页的“源码”
  • 浏览器:“解释和执行”HTML源码的工具

2.2 HTML文档的结构

  • HTML网页
  • 头部部分
  • 标题部分
  • 主题部分
  • 网页内容,包括文本、图像等

示例:

头标签中常用标签
标签描述
<title>定义了文档的标题
<base>定义了页面链接标签的默认链接地址
<link>定义了一个文档和外部资源之间的关系
<meta>定义了HTML文档中的元数据
<script>定义了客户端的脚本文件
<style>定义了HTML文档的样式文件
内容标签中常用标签
标签描述
<table>定义了一个表格
<tr>定义了表格中的一行
<td>定义了表格中某一行的一列
<img>定义了一个图像
<a>定义了一个超链接
<p>定义了一行
<br>定义了换行
<font>定义了字体

3、Web

3.1 web概述

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

3.2 web1.0 和web2.0

(1)web1.0

  • 以编辑为特征,网站提供给用户的内容是编辑处理后的,然后用户阅读网站提供的内容
  • 这个过程是网站到用户的单向行为

(2)web2.0

  • 更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是网站内容的制造者
  • 加强了网站与用户之间的互动,网站内容基于用户提供,网站的诸多功能也由用户参与建设,实现了网站与用户双向的交流与参与
  • Web2.0特征(用户分享、 以兴趣为聚合点的社群、开放的平台,活跃的用户)

4、静态网页

  • 静态网页是标准的HTML文件
  • 扩展名是.htm 、.html(文本、图像、声音、Flash动画、客户端脚本和ActiveX控件及Java小程序等)
  • 是网站建设的基础,早期网站一般都由静态网页制作
  • 没有后台数据库,不含程序和不可交互的网页
  • 相对更新起来比较麻烦,适用于一般更新较少的展示型网站
  • 每个静态网页都有一个固定的URL,且URL以.htm、.html、.shtml等常见形式为后缀,而不含有“?”
  • 网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页都是保存在网站服务器上的
  • 静态网页的内容相对稳定,容易别搜索引擎检测
  • 静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难
  • 静态网页的交互性较差,在功能方面有较大的限制
  • 页面浏览速度迅速,过程无需连接数据库,开启页面速度快于动态页面

5、动态网页

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

5.1 动态网页的特点

交互性

网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后WEB发展的大势所趋

自动更新

无须手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量

因时因人而变

当不同的时间,不同的人访问同一网址时会产生不同的页面

三、HTTP

1、HTTP协议概述

客户端先是进行域名解析,然后再利用三次握手与服务器建立TCP连接。其次发送http请求,然后服务器进行回应。在断开连接时,若服务器发出的信号为Keepalive,则该连接会保持一段时间,再该时间内可继续接收请求。

HTTP 已经演化出了很多版本,它们中的大部分都是向下兼容的。

  1. HTTP/0.9:已过时。只接受 GET 一种请求方法,没有在通讯中指定版本号,且不支持请求头。由于该版本不支持 POST 方法,所以客户端无法向服务器传递太多信息。
  2. HTTP/1.0:这是第一个在通讯中指定版本号的 HTTP 协议版本,至今仍被广泛采用,特别是在代理服务器中。
  3. HTTP/1.1:当前版本。持久连接被默认采用,即TCP连接默认不关闭,可以被多个请求复用,并能很好地配合代理服务器工作。还支持以管道方式同时发送多个请求,以便降低线路负载,提高传输速度。
  4. HTTP/2.0:完全多路复用,在一个连接里,客户端和浏览器都可以同时发送多个请求和回应,而且不用按照顺序一一对应。引入头部信息压缩机制。支持服务端推送,允许服务器未经过请求,主动向客户端发送资源。

2、HTTP方法

HTTP 支持几种不同的请求命令,这些命令被称为 HTTP 方法(HTTP method)。每条 HTTP 请求报文都包含一个方法, 告诉服务器要执行什么动作,包括:获取一个页面,运行一个网关程序,删除一个文件等。最常用的获取资源的方法是 GET、POST。

HTTP 描述
GET 对服务器资源获取的简单请求
PUT 向服务器提交数据,以修改数据
DELETE 删除服务器上的某些资源
POST 用于发送包含用户提交数据的请求
HEAD 请求页面的首部,获取资源的元信息

3、HTTP状态码

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

状态码首位已定义范围分类
1xx100-101信息提示
2xx200-206成功
3xx300-305重定向
4xx400-415客户端错误
5xx500-505服务器错误

4、HTTP 常见状态码

状态码功能描述
200一切正常
301永久重定向
302临时重定向
401用户名或密码错误
403禁止访问(客户端IP地址被拒绝)
404文件不存在
414请求URI头部过长
500服务器内部错误
502无效网关
503当前服务不可用
504网关请求超时

补充:409:请求的资源与资源状态发生冲突

   410:请求文件永久删除

5、HTTP 请求流程分析

用户在浏览器输入URL访问时,发起HTTP请求报文,请求中包括请求行、请求头、请求体,服务器收到请求后返回响应报文,包括状态行、响应头、响应体。

5.1 请求报文

请求行:请求行由请求方法、URL 以及协议版本三部分组成。
请求头:请求头为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔。
空行:请求头部的最后会有一个空行,表示请求头部结束,接下来为请求体,这一行非常重要,必不可少。
请求体:请求体是请求提交的参数,GET 方法已经在 URL 中指明了参数,所以提交时没有数据。POST 方法提交的参数在请求体中。

TCP报文包=TCP头信息+TCP数据体

5.2 常用的请求头

请求头 描述
Host 接受请求的服务器地址,可以是 IP:端口号,也可以是域名
User-Agent 发送请求的应用程序名称
Connection 指定与连接相关的属性,如 Connection:Keep-Alive
Accept-Charset 通知服务端可以发送的编码格式
Accept-Encoding 通知服务端可以发送的数据压缩格式
Accept-Language 通知服务端可以发送的语言

5.3 响应报文

状态行:状态行由协议版本,状态码,状态码描述三部分组成。

响应头:响应头与请求头部类似,为响应报文添加了一些附加信息

空行:响应头部的最后会有一个空行,表示响应头部结束

响应体:服务器返回的相应 HTML 数据,浏览器对其解析后显示页面。

5.4 常见响应头

响应头 描述
Server 服务器应用程序软件的名称和版本

Content-Type 响应正文的类型(是图片还是二进制字符串)

Content-Length 响应正文长度

Content-Charset 响应正文使用的编码

Content-Encoding 响应正文使用的数据压缩格式

Content-Language 响应正文使用的语言

6、http请求方式

6.1 GET方式

(1)请求行

请求的方式

请求的资源路径

请求的版本协议号

(2)请求头(描述信息/标准化信息)

Accept:客户端可以接收的数据类型

Accept-Language:客户端可以接收的语言类型

User-Agent:浏览器的信息

Accpect-Encoding:客户端可以接收的编码格式

Host:表示请求的ip和端口号

Connection :告诉服务器请求连接如何处理

Keep-Alive:通知服务器回传数据不要马上关闭,保持一小段的链接

Closed:马上关闭

6.2 POST请求方式

(1)请求行

请求的方式

请求的资源路径

请求的协议的版本号

(2)请求头

Accept:客户端可以接收的数据类型

Accept-Language:客户端可以接收的语言类型

Referer:表示请求发起时,浏览器地址栏中的地址

User-Agent:浏览器的信息

Content-Type:发送的数据类型

Content-Length:发送的数据长度

(3)请求体:就是发送给服务器的数据

6.3 GET与POST区别

(1)区别一:语义上的区别

  • Get向服务器请求数据,依照HTTP协议,get是用来请求数据。
  • Post向服务器发数据,依照HTTP协议,Post的语义是向服务器添加数据,也就是说按照Post的语义,该操作是会修改服务器上的数据

(2)区别二:服务器请求的区别

  • Get请求是可以被缓存,示例:
  • 访问百度,访问的方式就是GET,此时访问后的内容会缓被存在浏览器中,短时间再次访问,其实是拿到的浏览器中的缓存内容
  • 另外Get请求只能接收ASCII码的回复
  • Post 请求是不可以被缓存的。对于Post方式提交表单,刷新页面浏览器会弹出提示框“是否重新提交表单”,Post可以接收二进制等各种数据形式,所以如果要上传文件一- 般用Post请求

(3)区别三:参数上请求头和请求体的差别

Get请求通常没有请求体(当然这也是可以由程序猿心情改变的),在TCP传输中只需传输一-次(而不是一一个包).所以Get请求效率相对高。
Post请求将数据放在请求体中,而实际传输中,会先传输完请求头,再传输请求体,是分为两次传输的( 而不是<两个包)。
Post请求头会比Get更小(一 般不带参数),请求头更容易在一一个TCP包中完成传输, 更何况请求头中有Content-Length的标识,可以更好地保证Http包的完整性。

get和post请求方式区别
getpost
从指定的服务器上获得数据
GET请求能被缓存
GET请求会保存在浏览器的浏览纪录里(cookit)
GET请求有长度的限制
主要用于获取数据
查询的字符串会显示在URL中,不安全
提交数据给指定服务器处理
POST请求不能被缓存
POST请求不会保存在浏览器的浏览纪录里
POST请求没有长度限制
查询的字符串不会显示在URL中,比较安全
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值