web基础http与apache

这篇具有很好参考价值的文章主要介绍了web基础http与apache。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、http相关概念:

 http概述:

  •    HTTP 是一种用作获取诸如 HTML 文档这类资源的协议。它是 Web 上进行任何数据交换的基础,同时,也是一种客户端—服务器(client-server)协议
  •       为解决"用什么样的网络协议来实现整个因特网上的万维网文档”这一难题,就要使万维网客户程序(以浏览器为主,但不限于浏览器)与万维网服务器程序之间的交互遵守严格的协议,即超文本传送协议(HyperText Transfer Protocol)。HTTP是处于应用层的协议,使用TCP传输层协议进行可靠的传送。

 

二、http相关技术:

     3.1 web开发语言:

  • html
  • css
  • javascript

  3.1.1.html概述:

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

3.1.2 css:

      定义了如何显示(装扮) HTML 元素,比如:字体大小和颜色属性等。样式通常保存在外部的 .css 文件中,用于存放一些HTML文件的公共属性,从而通过仅编辑一个简单的 CSS 文档,可以同时改变站点中所有页面的布局和外观。

3.1.3  javascript

     实现网页的动画效果,但实属于静态资源

   3.2 动态网页语言:

  • PHP

即 Hypertext Preprocessor(超文本预处理器),它是当今 Internet 上最为火热的脚本语言,其语法借鉴了 C、Java、PERL 等语言,但只需要很少的编程知识你就能使用 PHP 建立一个真正交互的 Web 站点。

  • JSP

即 Java Server Pages(Java 服务器页面),它是由 Sun Microsystem 公司于 1999 年 6 月推出的新技术,是基于 Java Servlet 以及整个 Java 体系的 Web 开发技术。

  • Python

是一种面向对象、跨平台的动态类计算机程序设计语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的大型项目开发。

   3.3 URI:

   URI:统一资源标识,分为URL URN

  • URN:统一资源命名,URN仅用于命名
  • URL:统一资源定位符,用于描述某服务器某特定资源位置

web基础http与apache,http,网络协议,网络

 三、http协议版本:

  1. HTTP/0.9:已过时。只接受 GET 一种请求方法,没有在通讯中指定版本号,且不支持请求头。
  2. HTTP/1.0:引入了POST命令和HEAD命令头 每个TCP连接只能发送一个请求,发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建一个连接 。这是第一个在通讯中指定版本号的 HTTP 协议版本,至今仍被广泛采用,特别是在代理服务器中。
  3. HTTP/1.1:引入了持久连接,即TCP连接默认不关闭,可以被多个请求复用,能很好地配合代理服务器工作。还支持管道方式机制,即在同一个TCP连接里面,客户端可以同时发送多个请求,以便降低线路负载,提高传输速度。

四、http请求访问的过程:

  4.1.过程:

  1. 建立连接

  2. 接收请求

  3. 处理请求

  4. 访问资源

  5. 构建响应报文

  6. 发送响应报文

  7. 记录日志

  4.2 请求报文:

web基础http与apache,http,网络协议,网络

 4.2.1 方法:

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

4.2.2 URL:

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
  • scheme

    1. http 超文本传输协议

    2. https 安全的http协议

    3. ftp 文件传输协议

  • user:帐号

  • password:密码

  • host:主机名 或 域名 或 ip地址

  • port: 服务器端口号

  • path:访问资源的路径,相当于组件路径

  • params:参数,但是这个不常用,指定一些参数,譬如指定传输方式

  • qurey:查询参数

  • frag:html资源片段,譬如html文档过大的时候,frag定位到html的一部分

4.3 响应报文:

web基础http与apache,http,网络协议,网络

   4.3.1状态码:

  状态码分类:
状态码首位 已定义范围 分类
1xx 100-101     信息提示
2xx 200-206     成功
3xx 300-305     重定向
4xx 400-415 客户端错误
5xx 500-505 服务器错误
  常用状态码:
200 一切正常
301 永久重定向,将缓存记录在浏览器中
302 临时重定向,没有缓存,每次都要重定向
401 用户名或密码错误
403 禁止访问(客户端IP地址被拒绝)
404 请求的文件不存在
414 请求URL头部过长
500 服务器内部错误
502 无效网关
503 当前服务不可用
504 网关请求超时

五、常见的http服务器程序:

  • httpd apache,存在C10K(10K connections)问题

  • nginx 解决C10K问题lighttpd

  • IIS .asp 应用程序服务器

  • tomcat .jsp 应用程序服务器

  • jetty 开源的servlet容器,基于Java的web容器

  • Resin CAUCHO公司,支持servlets和jsp的引擎

  • webshpere:IBM公司

  • weblogic:BEA,Oracle

  • jboss:RedHat,IBM

  • oc4j:Oracle

六、apache介绍和特点:

1.apache 功能:

  • 提供http协议服务

  • 多个虚拟主机:IP、Port、FQDN

  • CGI:Common Gateway Interface,通用网关接口,支持动态程序

  • 反向代理

  • 负载均衡

  • 路径别名

  • 丰富的用户认证机制:basic,digest

  • 支持第三方模块

2.apache特性:

  • 高度模块化:core + modules

  • DSO:Dynamic Shared Object 动态加载/卸载

  • MPM:multi-processing module 多路处理模块

3.MPM multi-processing module 工作模式:

      3.1  prefork:多进程I/O模型,每个进程响应一个请求,CentOS 7 httpd默认模型一个主进程:生成和回收n个子进程,创建套接字,不响应请求多个子进程:工作 work进程,每个子进程处理一个请求;系统初始时,预先生成多个空闲进程,等待请求

  •      优点:稳定
  •      缺点:慢,占用资源,不适用于高并发场景

       3.2  worker :是一种多进程和多线程混合的模型,有一个控制进程,启动多个子进程,每个子进程里面包含固定的线程,使用线程程来处理请求,当线程不够使用的时候会再启动一个新的子进程,然后在进程里面再启动线程处理请求,由于其使用了线程处理请求,因此可以承受更高的并发。

  • 优点:相比prefork 占用的内存较少,可以同时处理更多的请求
  • 缺点:使用keep-alive的长连接方式,某个线程会一直被占据,即使没有传输数据,也需要一直等待到超时才会被释放。

    3.3 event:事件驱动模型(worker模型的变种),CentOS8 默认模型 有专门的监控线程来管理这些keep-alive类型的线程,当有真实请求时,将请求传递给服务线程,执行完毕后,又允许释放。这样增强了高并发场景下的请求处理能力

  • 优点:单线程响应多请求,占据更少的内存,高并发下表现更优秀,会有一个专门的线程来管理keep-alive类型的线程,当有真实请求过来的时候,将请求传递给服务线程,执行完毕后,又允许它释放
  • 缺点:没有线程安全控制

七、相关配置文件:

7.1 配置文件:

  • /etc/httpd/conf/httpd.conf 主配置文件

  • /etc/httpd/conf.d/*.conf 子配置文件

  • /etc/httpd/conf.d/conf.modules.d/ 模块加载的配置文件

   当一台服务器项目过多时,可以把配置不同的子配置文件文件

7.2 站点网页文档根目录:

     /var/www/html

7.3 模块文件路径:

  • /etc/httpd/modules

  • /usr/lib64/httpd/modules

八、web相关工具:

  8.1 wget:

    8.1.1 格式:

wget [OPTION]... [URL]...

    8.1.2 常用选项:

-q               静默模式
-c               断点续传
-P /path         保存在指定目录
-O filename 保   存为指定文件名,filename 为 - 时,发送至标准输出
--limit-rate=    指定传输速率,单位K,M等

  8.2 curl:

     curl是基于URL语法在命令行方式下工作的文件传输工具,它支持FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE及LDAP等协议。

   8.2.1 格式:

curl [options] [URL...]

   8.2.2 常用选项:

-A/--user-agent <string> 设置用户代理发送给服务器
-e/--referer <URL> 来源网址
--cacert <file> CA证书 (SSL)
-k/--insecure   允许忽略证书进行 SSL 连接
--compressed 要求返回是压缩的格式
-H/--header "key:value” 自定义首部字段传递给服务器
-i 显示页面内容,包括报文首部信息
-I/--head 只显示响应报文首部信息
-D/--dump-header <file>将url的header信息存放在指定文件中
--basic 使用HTTP基本认证
-u/--user <user[:password]>设置服务器的用户和密码
-L   如果有3xx响应码,重新发请求到新位置
-O 使用URL中默认的文件名保存文件到本地
-o <file> 将网络文件保存为指定的文件中
--limit-rate <rate> 设置传输速度
-0/--http1.0 数字0,使用HTTP 1.0
-v/--verbose 更详细
-C 选项可对文件使用断点续传功能
-c/--cookie-jar <file name> 将url中cookie存放在指定文件中
-x/--proxy <proxyhost[:port]> 指定代理服务器地址
-X/--request <command> 向服务器发送指定请求方法
-U/--proxy-user <user:password> 代理服务器用户和密码
-T 选项可将指定的本地文件上传到FTP服务器上
--data/-d 方式指定使用POST方式传递数据
-s --silent   Silent mode
-b name=data 从服务器响应set-cookie得到值,返回给服务器
-w <format> 显示相应的指定的报文信息,如:%{http_code},%{remote_ip}等
-m, --max-time <time> 允许最大传输时间
-n:总请求数
-c:模拟的并发数
-k:以持久连接模式测试

8.3 压力测试工具:

   ab: 命令格式:

ab [OPTIONS] URL

选项:

-n:总请求数
-c:模拟的并发数
-k:以持久连接模式测试

九、Cookie和session:

9.1 Cookie:

    Cookie 又称为"小甜饼”。类型为"小型文本文件”,指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。由网景公司的前雇员卢·蒙特利在1993年3月发明

    因为HTTP协议是无状态的,即服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现。在典型的网上购物场景中,用户浏览了几个页面,买了一盒饼干和两瓶饮料。最后结帐时,由于HTTP的无状态性,不通过额外的手段,服务器并不知道用户到底买了什么,所以Cookie就是用来绕开HTTP的无状态性的"额外手段”之一。服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状态。

    在上面的购物场景中,当用户选购了第一项商品,服务器在向用户发送网页的同时,还发送了一段Cookie,记录着那项商品的信息。当用户访问另一个页面,浏览器会把Cookie发送给服务器,于是服务器知道他之前选购了什么。用户继续选购饮料,服务器就在原来那段Cookie里追加新的商品信息。结帐时,服务器读取发送来的Cookie就行了。

    Cookie基于HTTP协议,也叫Web Cookie或浏览器Cookie,是服务器发送到用户浏览器并保存在客户端本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。Cookie使基于无状态的HTTP协议记录稳定的状态信息成为了可能。

9.2 session:

   session 将数据信息保存在服务器端,可以是内存,文件,数据库等多种形式,cookie 将数据保存在客户端的内存或文件中

   session中有众多数据,只将sessionID这一项可以通过cookie发送至客户端进行保留,客户端下次访问时,在请求报文中的cookie会自动携带sessionID,从而和服务器上的的session进行关联

十、通信套接字(socket):

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

  • 进程之间传输的标志:IP地址和端口号,合称为套接字地址 socket address文章来源地址https://www.toymoban.com/news/detail-666723.html

10.1 http协议中socket的作用 

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

10.2 套接字调用的相关接口

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

到了这里,关于web基础http与apache的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • web基础与HTTP协议

    web基础与HTTP协议

    1.1 DNS作用 正向解析 根据域名查找对应的IP地址; 反向解析 根据IP地址查找对应的域名 1.2 域名空间结构 ① 根域 位于域名空间最顶层,一般用一个 “.” 表示 基础单位,除了根域 其他都只有一个上级域,有0或多个子域,同层域不可重复的子域或域名 ② 顶级域 一般代表一

    2024年02月06日
    浏览(7)
  • web基础及http协议 (一)

    web基础及http协议 (一)

    互联网:是网络的网络,是所有类型网络的母集 因特网:世界上最大的互联网网络。即因特网概念从属于互联网概念。习惯上,大家把连接在因特网上的计算机都成为主机。 万维网:WWW (world wide web)万维网并非某种特殊的计算机网络, 是一个大规模的、联机式的信息贮藏

    2024年02月21日
    浏览(6)
  • web基础+HTTP协议+httpd详细配置

    web基础+HTTP协议+httpd详细配置

    HTML(全称为Hypertext Markup Language)是一种标记语言,用于创建和组织Web页面的结构和内容。 HTML是构建Web页面的基础,定义了页面的结构和内容,通过 标记和元素 来实现。 1.1.1 HTML的文件结构 1.1.2 HTML中的部分基本标签 基本标签 含义 html HTML文档的根元素, 包含文档的全部内

    2024年02月12日
    浏览(8)
  • Linux服务第一章:web基础与http协议

    Linux服务第一章:web基础与http协议

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 1、网络上交互是基于TCP/IP协议的,每个主机在逻辑上有一个唯一位置标识(IP地址),物理地址为MAC地址 2、为了保证地址唯一性,用户协议向特地给机构申请注册,分配IP地址网络中的地址有两套方案

    2024年02月09日
    浏览(7)
  • 计算机网络:应用层(二) Web与http协议

    计算机网络:应用层(二) Web与http协议

    我最近开了几个专栏,诚信互三! ==== ||| 《算法专栏》::刷题教程来自网站《代码随想录》。||| ==== ||| 《C++专栏》::记录我学习C++的经历,看完你一定会有收获。||| ==== ||| 《Linux专栏》::记录我学习Linux的经历,看完你一定会有收获。||| ==== ||| 《C#专栏》::记录我复

    2024年02月03日
    浏览(9)
  • 计算机网络第2章-HTTP和Web协议(2)

    计算机网络第2章-HTTP和Web协议(2)

    一个新型应用即万维网(World Wide Web)Web。 Web的应用层协议是超文本传输协议(HTTP), 它是Web的核心 。 HTTP由两个程序实现:一个用户程序和一个服务器程序。 Web页面(Web Page)(也叫文档)是由对象组成的。 一个对象只是一个文件 ,诸如一个HTML文件、一个JPG图形等等。

    2024年02月07日
    浏览(11)
  • 【Linux】——网络基础:http协议

    【Linux】——网络基础:http协议

    目录 前言 应用层 认识协议 协议的概念 传输结构化数据 序列化和反序列化 网络版本计算器 服务器端Server  客户端Client 协议定制 其它 运行效果 HTTP协议 HTTP的简介 认识URL urlencode和urldecode HTTP协议格式 HTTP请求 HTTP响应 HTTP的方法  GET和POST方法 POSTMAN演示 HTTP的状态码 HTTP常见

    2024年02月09日
    浏览(14)
  • 【应用层】网络基础 -- HTTP协议

    【应用层】网络基础 -- HTTP协议

    协议是一种 “约定”. socket api的接口,在读写数据时,都是按 “字符串” 的方式来发送接收的(tcp是以字节流的方式发送的,这里便与表述使用\\\"字符串\\\") 如果我们要传输一些\\\"结构化的数据\\\" 怎么办呢? 那么我们(TCP)在收到一个报文的时候,如何保证你收到了一个完整的报文?

    2024年02月11日
    浏览(22)
  • HTTP 和 HTTPS 协议原理【网络基础】

    友情链接: HTTP协议【网络基础/应用层】 简单:HTTP 是一种文本协议,易于理解和实现。HTTP 的请求和响应都由起始行、首部字段和可选的消息主体组成,每个部分都有明确的语法规则。HTTP 的方法、状态码和首部字段都有标准化的定义,方便开发者遵循。 灵活:HTTP 是一种无

    2024年02月09日
    浏览(12)
  • 网络基础2(HTTP,HTTPS,传输层协议详解)

    网络基础2(HTTP,HTTPS,传输层协议详解)

    再谈协议         在之前利用套接字进行通信的时候,我们都是利用 “字符串” 进行流式的发送接收,但是我们平常进行交流通信肯定不能只是简单的发送字符串。         比如我们用QQ进行聊天,我们不仅需要得到对方发送的消息,还要知道对方的昵称,头像等一系列数

    2024年02月13日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包