美文网首页GO读书笔记
《go web 编程》第三章 web基础:web的工作方式

《go web 编程》第三章 web基础:web的工作方式

作者: bycall | 来源:发表于2022-08-04 15:21 被阅读0次
注:本书的第一,二章节描述的go的历史,语言特点及环境部署,这里就不在重复描述。

对于普通的上网过程,系统其实是这样做的:浏览器本身是一个客户端,当你输入 URL 的时候,首先浏览器会去请求 DNS 服务器,通过 DNS 获取相应的域名对应的 IP,然后通过 IP 地址找到 IP 对应的服务器后,要求建立 TCP 连接,等浏览器发送完 HTTP Request(请求)包后,服务器接收到请求包之后才开始处理请求包,服务器调用自身服务,返回 HTTP Response(响应)包;客户端收到来自服务器的响应后开始渲染这个 Response 包里的主体(body),等收到全部的内容随后断开与该服务器之间的 TCP 连接。

用户访问一个 Web 站点的过程

一个 Web 服务器也被称为 HTTP 服务器,它通过 HTTP 协议与客户端通信。这个客户端通常指的是 Web 浏览器 (其实手机端客户端内部也是浏览器实现的)。

Web 服务器的工作原理可以简单地归纳为:

客户机通过 TCP/IP 协议建立到服务器的 TCP 连接
客户端向服务器发送 HTTP 协议请求包,请求服务器里的资源文档
服务器向客户机发送 HTTP 协议应答包,如果请求的资源包含有动态语言的内容,那么服务器会调用动态语言的解释引擎负责处理 “动态内容”,并将处理得到的数据返回给客户端
客户机与服务器断开。由客户端解释 HTML 文档,在客户端屏幕上渲染图形结果
一个简单的 HTTP 事务就是这样实现的,看起来很复杂,原理其实是挺简单的。需要注意的是客户机与服务器之间的通信是非持久连接的,也就是当服务器发送了应答后就与客户机断开连接,等待下一次请求。

HTTP 协议详解
HTTP 协议是 Web 工作的核心,所以要了解清楚 Web 的工作方式就需要详细的了解清楚 HTTP 是怎么样工作的。

HTTP 是一种让 Web 服务器与浏览器 (客户端) 通过 Internet 发送与接收数据的协议,它建立在 TCP 协议之上,一般采用 TCP 的 80 端口。它是一个请求、响应协议 -- 客户端发出一个请求,服务器响应这个请求。在 HTTP 中,客户端总是通过建立一个连接与发送一个 HTTP 请求来发起一个事务。服务器不能主动去与客户端联系,也不能给客户端发出一个回调连接。客户端与服务器端都可以提前中断一个连接。例如,当浏览器下载一个文件时,你可以通过点击 “停止” 键来中断文件的下载,关闭与服务器的 HTTP 连接。

HTTP 协议是无状态的,同一个客户端的这次请求和上次请求是没有对应关系,对 HTTP 服务器来说,它并不知道这两个请求是否来自同一个客户端。为了解决这个问题, Web 程序引入了 Cookie 机制来维护连接的可持续状态。

HTTP 协议是建立在 TCP 协议之上的,因此 TCP 攻击一样会影响 HTTP 的通讯,例如比较常见的一些攻击:SYN Flood 是当前最流行的 DoS(拒绝服务攻击)与 DdoS(分布式拒绝服务攻击)的方式之一,这是一种利用 TCP 协议缺陷,发送大量伪造的 TCP 连接请求,从而使得被攻击方资源耗尽(CPU 满负荷或内存不足)的攻击方式。

相关文章

  • java web目录

    java web目录 web编程基础web编程进阶(一)web编程进阶(二)web编程原理

  • 《go web 编程》第三章 web基础:web的工作方式

    注:本书的第一,二章节描述的go的历史,语言特点及环境部署,这里就不在重复描述。 对于普通的上网过程,系统其实是这...

  • go web开发学习之路

    基础:go 原生web开发1、go web的工作原理2、搭建一个简单的go web站点3、go web中载入静态文...

  • 《go web 编程》第三章 web基础:web 工作方式的几个

    web 工作方式的几个概念以下均是服务器端的几个概念 Request:用户请求的信息,用来解析用户的请求信息,包括...

  • Web的工作方式,http协议简介

    摘要 本文转自《go web编程》一书,觉得说的比较好,特转过来收藏。 原文地址:web的工作方式,http协议简...

  • Go Web编程一: Go Web 基础

    原文链接 http://ironxu.com/779 Go Web 基础概念与代码阅读 1. Go 搭建简单的we...

  • Go Web编程.epub

    【下载地址】 《Go Web编程》介绍如何用Go语言进行Web应用的开发,将Go语言的特性与Web开发实战组合到一...

  • go web编程基础

    通过了一段时间对go的接触,是时候展现真的技术了----嘻嘻嘻。大家都知道go语言因为它的轻量级,快速编译的特性用...

  • Go基础编程---web编程

    简单web服务器代码 简单客户端代码 并发爬取百度贴吧的页面 并发爬虫爬取段子

  • Golang资料整理

    视频 郝林-Go语言第一课 Go编程基础 Go Web 基础 Go名库讲解 社区 官网要翻墙 Github--Go...

网友评论

    本文标题:《go web 编程》第三章 web基础:web的工作方式

    本文链接:https://www.haomeiwen.com/subject/nsiywrtx.html