zoukankan      html  css  js  c++  java
  • 学习http第一天

    学习http第一天

    阅读书籍:《图解http》

    参考连接:(4 封私信 / 33 条消息) http - 搜索结果 - 知乎 (zhihu.com)

    带着问题学习更快呀

    • web是建立在何种技术之上
    • http是如何诞生并发展的

    使用Http协议访问web

    思考:在浏览器的地址栏中输入url时,web页面如何呈现?

    在浏览器输入url之后,信息会被送往某处,从某处得到回复之后,内容就显示出来了。

    什么是客户端:通过发送请求获取服务器资源的web浏览器。

    web使用一种名为HTTP的协议作为规范,完成从客户端到服务器端等一系列运作流程。web是建立在HTTP协议上通信的

    Http的诞生

    为知识共享而规划web

    XX博士提出一种能让远隔两地的研究者们共享知识的设想,

    最初的理念是借助多文档之间的相互关联形成的超文本,连成可相互参阅的www(万维)

    现在:HTML,页面的文本标记语言,HTTP:文档的传递协议,URL:文档所在的地址

    网络基础

    通常使用的网络是在tcp/ip协议的族的基础上运作的,而http是属于他内部的一个子集

    tcp/Ip协议里重要的一点就是分层。应用层,传输层,网络层,数据链路层。分层之后各层的只需要考虑各层,需要替换的也只是替换各层的,互不影响。

    通信传输流

    发送端在层与层之间传输时,每经过一层必定会打上一个该层所属得首部信息,反之,接收端在层与层传输数据时,每经过一层时会把对应得首部消去

    发送端从应用层往下走,接收端从数据链路层往上走。

    与http关系密切的协议 IP,TCP,DNS

    • 负责传输的IP协议

      ​ 按层次分,位于网络层,作用是,把各种数据包传输给对方

    • 确保可靠的tcp协议

      ​ 位于传输层,提供可靠的字节流服务

    • 负责域名解析的DNS服务

      ​ 和http一样位于应用层,提供域名到IP地址之间的解析服务

    个人理解:客户端找dns要IP地址,拿到IP地址,http协议生成HTTP请求报文,tcp负责将报文可靠的传输给对方,ip协议负责搜索对方的地址仅从中转和传送 (联想送快递)

    URL/URI

    简单得HTTP协议

    http用于客户端和服务端之间的通信

    应用HTTP协议时必定是一端担任客户端角色,另一端担任服务端角色。有时候按照实际情况,两台计算机作为客户端和服务端得角色有可能互换。

    通过请求和响应得交互达成通信

    请求必定是客户端发出,响应是服务端响应。换句话说,首先是从客户端简历通信,服务器端没有收到请求之前不会发送响应。

    HTTP是不保存状态的协议

    即无状态协议

    使用HTTP协议,每当有新的请求发送时,就会有对应的新响应产生。协议本身并不保留之前一切的请求或响应报文的信息,这是为了更快的处理大量事务,确保协议的可伸缩性。但是随着web的不断发展,因无状态导致业务处理变得棘手的情况增多了

    为了实现期望保存状态的功能引入了cookie技术,如保存登录的一些信息等。

    get,post,put,delete...等就不写了,工作中遇到再说

    持久连接

    HTTP协议的初始版本中,没进行一次HTTP通信就要断开一次TCP连接,,在现在web的发展看来,每次的请求都会造成无谓的TCP连接建立和断开,增加通信量的开销,为了解决找个问题,HTTP/1.1想出了持久化连接connection:keep-alive。持久化连接特点是只要一端没有明确提出断开连接,则保持TCP来凝结状态。

    管线化

    除了服务器端,客户端也需要持久化连接

    持久化使得多数请求以管线化方式发送成为可能,从前发送请求后需等待并收到响应,才能发送下一个请求,管线化技术出现后,不用等待响应就可之间发送到下一个请求。

    这样就能够做到同时并行发送多个请求,而不需要一个接一个的等待响应了。

    使用cookie的状态管理

    保留无状态协议这个特征的同时又要解决类似的矛盾问题,于是引入cookie技术。cookie技术通过在请求和响应中写入cookie信息来控制客户端的状态,

    cookie会根据服务端发送的的响应报文内的一个叫做set-cookie的首部字段信息,通知客户端保存cookie,当下次客户端再往该服务器发送请求时,客户端会自动再请求报文中加入cookie值后发送出去。

    服务器端发现客户发送过来的cookie后,回去检查究竟时从哪一个客户端发来的来连接请求,然后对比服务器上的记录,最后得到之前的状态信息。

  • 相关阅读:
    win7 64位下 mongodb安装及命令运行
    CYQ.Data 快速开发EasyUI
    面试杂记:三个月的面试回忆录(携程、腾讯等)
    那点你不知道的XHtml(Xml+Html)语法知识(DTD、XSD)
    .NET各大平台数据列表控件绑定原理及比较(WebForm、Winform、WPF)
    CYQ.Data 支持WPF相关的数据控件绑定(2013-08-09)
    CYQ.Data V4系列全面开源(2013-08-04)
    C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
    C#与Java对比学习:数据类型、集合类、栈与队列、迭达、可变参数、枚举
    突破瓶颈,对比学习:Eclipse开发环境与VS开发环境的调试对比
  • 原文地址:https://www.cnblogs.com/wszzj/p/15207082.html
Copyright © 2011-2022 走看看