web基础与http

一,dns与域名

        网络基于tcp/ip协议进行通信和连接的,其中主机以ip地址做固定的地址标识,用以区分用户和计算机。ip地址是由32位二进制数组成,不方便记忆。为了方便记忆,采用了域名。但是网络通信的唯一标识是ip地址,于是就有了dns。

dns的解析方式:

        1,etc/host

        负责快速解析的文件,包含了ip与主机名之间的映射关系。如果没有dns服务器的情况之下,可以使用/etc/hosts来完成解析和映射

        2,etc/resolv.conf

        Dns客户端的配置文件,设置dns服务器的ip和域名。还包含了主机域名的搜索顺序。主要是域名解析服务器使用的配置文件。

        3,修改网卡配置。

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

域名解析服务器作用:

        1,保持和维护域名空间

        2,应对相应的解析请求

二,Html

Html:超文本标记语言,是一种规范的,标准的语言格式。网页文件本身就是一个文本文件。Html就是通过标记的方式告诉浏览器如何显示文本当中的内容。所有可以生成txt文件工具都可以修改html。修改后的文件后缀只能是.html或者.htm。

网页:纯文本格式的文件,用html语言莱进行编写的。

网站:由多个页面组成的,网页的结合体。主页是打开网站后的第一个页面。

域名:浏览网页时输入的网址。

http/https

用来传输页面的通信协议,https就是加密的,是一种通信协议,基于tcp协议。端口号http80,https443。

URL:万维网寻址系统的唯一标识

超链接:超链接将网站中的不同页面连接起来。

Web2.0用户交互

静态页面和静态页面:

        静态页面是标准的html文件,扩展名都是htm,html。里面包含图片,文本,声音,动画。它是网站建设的基础,早期的网站都是静态页面。没有后台数据,不包含可交互的内容。更新起来比较麻烦,一般用于展示型网站。

静态页面的特点:

  1. 静态页面的URL是固定的,一般不包含?
  2. 页面一经发布,都是保存在网站的服务器上的。
  3. 静态页面相对稳定,内容很少发生变化,容易被搜索引擎检索
  4. 没有数据库指出,制作和维护的工作量比较大。网站的信息量如果太大,单纯的使用静态页面比较困难
  5. 没有交互性,只能看,功能受限很大
  6. 浏览速度很快,因为不需要连接后端

动态页面:

  1. 网页url是不固定的,用户可以和后台数据进行交互
  2. 动态页面的网址中一般会包含一个特殊标记  ?
  3. 动态页面的语言:PHP,JSP,Python,Ruby,Tomcat

动态页面的特点:

  1. 交互性
  2. 自动更新
  3. 特效,每个人进入页面的时候会有不同效果。

http协议:超文本传输协议

Httpd程序名,apache服务名

http协议是互联网上应用最广泛的网络协议之一,是基于tcp的协议,在应用层工作

客户端和服务端之间进行数据传输的一种规则。

工作流程:

  1. 客户端和服务端进行tcp连接。
  2. 客户端发送http请求,服务端接收到http请求之后,响应客户端的请求
  3. 通过socket接口进行通信
  4. 相应到达客户端,浏览器进行解析。
  5. 访问结束后断开连接。

http是一种无状态的协议,本身不会对发送过的请求和相应的通信进行持久化(连接保持)处理。为了能让http能够快速的,大量的进行处理事务,提高效率。

        Cookie:记录用户的登录状态,跟踪统计用户访问的习惯,识别用户身份,保存用户信息。http自带的连接保持功能,长连接

        长连接:一次性获取页面文件的所有信息,不用需要再分开处理请求,所以速度大大加快,并行。

        连接保持:keep-alive。在一个tcp连接上,可以传送多个http请求和相应,减少了建立和关闭连接的消耗和延迟。连接保持默认开启并且有时限,一般是60s

        连接资源占用:长时间保持会降低服务器的负载,如果是高并发,会使服务器耗尽资源。

        连接状态管理:长连接需要维护连接状态。服务器需要跟踪每个连接的状态,增加服务器的负载。

        https:加密通信协议,主要是加密数据传输,加密过程涉及客户端和服务器之间的密钥交换,确保只有合法的接收方能够解密数据

        证书:https使用数字证书验证身份。加密解密对访问速度有一定影响。

http请求头中包含请求体,请求体中的内容:

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

        Accept-Encoding:客户端可以接受的编码格式

        Accept-Language:客户端支持的语言类型

        Cache-Control:图片或者是音频文件的缓存时间

        Connection:告诉服务器处理请求连接,一般默认都是keep-alive,默认65.

请求方式:

        get:用来向服务器发起请求。

        Post:向后台发数据,向服务器添加数据,也可以改变服务器数据。

Get方法:

  1. 从指定服务器获取数据
  2. Get请求是可以被缓存的
  3. Get请求会保存在浏览器的记录中,cookie
  4. Get请求长度是有限制的

Post请求

  1. post请求不能缓存
  2. Post请求也不会被记录再浏览器的记录当中
  3. 请求体长度没有限制

Status code状态码,响应码(面试)

请求之后服务器收到请求会有回应,同时会反馈一个响应码:

        1xx:100-101 信息提示       

        2xx:200-206  成功

        3xx:300-305  重定向

        4xx:400-415  客户端错误

        5xx:500-505  服务端错误

常见的:

        200:成功

        301:请求的永久页面跳转

        304:重定向到缓存

        403:禁止访问

        404:请求页面找不到

        500:服务器内部错误

        502:网关失效

        503:服务不可用

        504:网关请求超时        

通信套接字:Socket

        实现不同主句进行通信和数据交换,进程间传输的标志:ip,端口

合同谈判协议中socket的作用:

  1. 客户机套接字:定义了唯一的客户进程
  2. 服务端套接字:定义了一个唯一的服务器进程。

Socket() 创建端口

Bind()  绑定ip和端口

Listen()  监听,等待连接

Accept()  接收请求

Connect()   请求连接建立

Write()  发送

Read()  接受

ESTABLISHED  连接已建立,正在传输数据

Chose()关闭连接

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