做网站会用到什么语言,乐都网站建设,网站怎么做网站收录,wordpress影院【网络知识】| 作者 / Edison Zhou这是EdisonTalk的第293篇原创内容作为一个专业的IT技术人#xff0c;一个Web应用开发者#xff0c;不了解网络基础和协议#xff0c;怎么能行#xff1f;本文是我2016年阅读《图解HTTP》一书的读书笔记#xff0c;希望对你有所帮助#… 【网络知识】| 作者 / Edison Zhou这是EdisonTalk的第293篇原创内容作为一个专业的IT技术人一个Web应用开发者不了解网络基础和协议怎么能行本文是我2016年阅读《图解HTTP》一书的读书笔记希望对你有所帮助1关于《图解HTTP》目前国内讲解HTTP协议的书实在太少了记忆中有两本被誉为经典的书《HTTP权威指南》与《TCP/IP详解卷1》但内容晦涩难懂学习难度较大。其实HTTP协议并不复杂理解起来也不会花费太多学习成本这本书的出现就及时缓解了该问题。对基础及核心部分的深入学习是成为一名专业技术人员的前提以不变应万变才是立足之本。此外这本书也是我在2016年度读书计划中的一本它和《图解TCP/IP》一起作为计算机网络基础部分为我温故知新了一把谢谢作者和译者画了这么多图解让我们理解。2HTTP协议初探各种协议与HTTP协议的关系请求处理相应模型HTTP协议规定请求从客户端发出最后服务端响应应该请求并返回。请求报文由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成的。响应报文由协议版本、状态码、用以解释状态码的原因短语、可选的响应首部字段以及实体主体构成。HTTP协议是一种无状态协议HTTP协议对于发送过的请求或响应都不做持久化处理协议本身并不保留之前一切的请求或响应报文的信息这是为了更快地处理大量事务确保协议的可伸缩性而特意把HTTP协议设计成如此简单的。HTTP/1.1虽然是无状态协议但为了实现期望的保持状态功能于是引入Cookie技术。有了Cookie再用HTTP协议通信就可以管理状态了。Cookie根据服务器端发送的响应报文内的一个叫做Set-Cookie的首部字段信息通知客户端保存Cookie。当下次客户端再往该服务器发送请求时客户端自动在请求报文中加入Cookie值后发送出去。服务端发现客户端发送过来的Cookie后会去检查究竟是从哪一个客户端发来的连接请求然后对比服务器上的记录最后得到之前的状态信息。告知服务器意图的HTTP方法1GET获取资源2POST传输实体主体 → POST的主要目的并不是获取响应的主体内容3PUT传输文件 → 就像FTP协议的文件上传一样要求在请求报文的主体中包含文件内容然后保存到请求URI指定的位置但是鉴于HTTP/1.1的PUT方法自身不带验证机制任何人都可以上传文件所以存在安全性问题因此一般的Web网站不使用该方法。4HEAD获得报文首部 → HEAD与GET一样只是不返回报文主体部分用于确认URI的有效性及资源更新的日期时间等等。5DELETE删除文件 → DELETE与PUT相反DELETE按请求URI删除指定资源。但是HTTP/1.1的DELETE方法本身与PUT方法一样不带验证机制所以一般的Web网站也不使用DELETE方法。6OPTIONS询问支持的方法 → 查询针对请求URI指定的资源所支持的方法例如该资源支持GET、POST、PUT等。7TRACE追踪路径 → 让Web服务器端将之前的请求通信还回给客户端的方法。不常用容易引发XST攻击8CONNECT要求用隧道协议连接代理 → 要求在与代理服务器通信时建立隧道实现用隧道协议进行TCP通信。主要使用SSL和TLS协议把通信内容加密后经过网络隧道传输。CONNECT方法的格式CONNECT 代理服务器名端口号 HTTP版本持久连接在HTTP协议的初始版本中每进行一次HTTP通信就要断开一次TCP连接。因此每次的请求都会造成无谓的TCP连接建立与断开增加通信量的开销。为了解决这个问题HTTP/1.1想出了持久连接也称为HTTP keep-alive其特点是只要任意一端没有明确提出断开连接则保持TCP连接状态。持久连接的好处在于减少了TCP连接的重复建立和断开所造成的额外开销减轻了服务器的负载也使得HTTP请求和响应能够更早地结束这样Web页面的显示速度也就相应的提高了。在HTTP/1.1中所有的连接默认都是持久连接。3HTTP报文详解用于HTTP协议交互的信息就被称为HTTP报文请求段的叫做请求报文响应端的叫做响应报文。HTTP报文本身是由多行用CRLF作换行符数据构成的字符串文本。HTTP报文结构1HTTP报文大致可以分为报文首部和报文主体两块 2请求报文和响应报文的结构实例部分内容的范围请求通常下载一个大文件时如果遇到网络中断的情况那就必须重头开始因此为了解决上述问题就需要一种可恢复的机制。所谓恢复就是指从之前下载的中断处恢复下载。要实现该功能需要制定下载的实体范围这就叫范围请求Range Request。对一份10000字节大小的资源如果使用范围请求可以只请求5001~10000字节内的资源。执行范围请求时就会用到Range来指定资源的byte范围。内容协商机制内容协商机制就是指在客户端和服务端就响应的资源内容进行交涉然后提供给客户端最为合适的资源。内容协商会议响应资源的语言、字符集、编码方式等作为判断的基准。So有哪些判断的基准呢 Accept Accept-Charset Accept-Encoding Accept-Language Content-LanguageHTTP状态码HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。借助状态码用户可以知道服务器端是正常处理了请求还是出现了错误。12XX 成功 → 表明请求被正常处理了如200 OK204 No Content206 Partial Content23XX 重定向 → 表明浏览器需要执行某些特殊的处理以正确处理请求。如301 Moved Permanently永久移动302 Found临时移动303 See Other资源的URI已更新是否能临时按新的URI访问、304 Not Modified资源已找到但未符合条件请求、307 Temporary Redirect临时重定向34XX 客户端错误 → 表明客户端是发生错误的原因所在。如400 Bad Request请求报文中存在语法错误401 Unauthorized认证失败或未认证、403 Forbidden不允许访问这个资源、404 Not Found服务器上没有请求的资源。45XX 服务器错误 → 表明服务器本身发生错误。如500 Internal Server Error服务器端在执行请求时发生了错误也可能是Web应用存在的Bug或某些临时的故障503 Service Unavailable表明服务器暂时处于超负载或正在停机维护无法处理请求。HTTP首部 HTTP/1.1规范定义了如下47种首部字段1通用首部字段2请求首部字段 3响应首部字段 4实体首部字段Ref参考资料[日]上野宣《图解HTTP》后台回复图解HTTP即可获得pdf下载链接哟姊妹篇《图解TCP/IP》学习总结????扫码关注EdisonTalk设为星标不再失联往期推文合集2020年上半年推文合集成都新鲜坑位喜鹊生活招聘.NET开发