美文网首页
HTTP学习

HTTP学习

作者: 逗留 | 来源:发表于2016-11-10 10:37 被阅读12次

    HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。通常承载于TCP之上,如果是承载于TLS或SSL之上,就是常说的HTTPS了。

    http详解:http://www.blogjava.net/zjusuyong/articles/304788.html

    tcp/ip协议簇详解:http://blog.csdn.net/goodboy1881/article/category/204448

    URL的组成部分:

    •协议

    协议确定如何传输请求。我们主要是处理http和https。其他常见的协议还有file和ftp。

    •主机名主机名标识服务器。运行在本地计算机(localhost)和本地网络的服务器可以简单地表示,比如用一个单词,或一个数字IP地址。在Internet环境下,主机名通常以一个顶级域名(TLD)结尾,比如.com或.net。另外,也许还会有子域名作为主机名的前缀。子域名可以是任何形式的,其中www最为常见。子域名通常是可选的。

    •端口

    每一台服务器都有一系列端口号。一些端口号比较“特殊”,如80和443端口。如果省略端口值,那么默认80端口负责HTTP传输,443端口负责HTTPS传输。如果不使用80和443端口,就需要一个大于10231的端口号。通常使用容易记忆的端口号,如3000、8080或8088。

    •路径

    URL中影响应用程序的第一个组成部分通常是路径(在考虑协议、主机名和端口的基础上做决定很合理,但是不够好)。路径是应用中的页面或其他资源的唯一标识。

    •查询字符串查询字符串是一种键值对集合,是可选的。它以问号(?)开头,键值对则以与号(&)分隔开。所有的名称和值都必须是URL编码的。对此,JavaScript提供了一个嵌入式的函数encodeURIComponent来处理。例如,空格被加号(+)替换。其他特殊字符被数字型字符替换。

    •信息片段

    信息片段(或散列)被严格限制在浏览器中使用,不会传递到服务器。用它控制单页应用或AJAX富应用越来越普遍。最初,信息片段只是用来让浏览器展现文档中通过锚点标记(<a id="chapter06">)指定的部分。

    请求和响应:

    头部信息详解:http://xiejiaming.com/195.html

    请求报头

    我们浏览网页时,发送到服务器的并不只是URL。当你访问一个网站时,浏览器会发送很多“隐形”信息。服务器会因此得知优先响应哪种语言的页面(例如,在西班牙下载Chrome浏览器,如果有西班牙语的版本,就会接收到一个西班牙语的访问页面)。它也会发送“用户代理”信息(浏览器、操作系统和硬件设备)和其他一些信息。所有能够确保你了解请求对象头文件属性的信息都将会作为请求报头发送。

    响应报头

    正如浏览器以请求报头的形式发送隐藏信息到服务器,当服务器响应时,同样会回传一些浏览器没必要渲染和显示的信息,通常是元数据和服务器信息。我们已经熟悉内容类型头信息,它告诉浏览器正在被传输的内容类型(网页、图片、样式表、客户端脚本等)。特别要注意的是,不管URL路径是什么,浏览器都根据内容类型报头处理信息。因此你可以通过一个叫作/image.jpg的路径提供网页,也可以通过一个叫作/text.html的路径提供图片。(这样做并不合情理,这里要讲的重点是路径是抽象的,浏览器只根据内容类型来决定内容该如何渲染。)除了内容类型之外,报头还会指出响应信息是否被压缩,以及使用的是哪种编码。响应报头还可以包含关于浏览器对资源缓存时长的提示。响应报头还经常会包含一些关于服务器的信息,一般会指出服务器的类型,有时甚至会包含操作系统的详细信息。返回服务器信息存在一个问题,那就是它会给黑客一个可乘之机,从而使站点陷入危险。非常重视安全的服务器经常忽略此信息,甚至提供虚假信息。

    互联网媒体类型

    内容类型报头信息极其重要,没有它,客户端很难判断如何渲染接收到的内容。内容类型报头就是一种互联网媒体类型,由一个类型、一个子类型以及可选的参数组成。例如,text/html;charset=UTF-8说明类型是text,子类型是html,字符编码是UTF-8。互联网编号分配机构维护了一个官方的互联网媒体类型清单(http://www.iana.org/assignments/media-types/media-types.xhtml)。我们常见的content type、Internet media type和MIME type是可以互换的。MIME(多用途互联网邮件扩展)是互联网媒体类型的前身,它们大部分是相同的。

    请求体

    除请求报头外,请求还有一个主体(就像作为实际内容返回的响应主体一样)。一般GET请求没有主体内容,但POST请求是有的。POST请求体最常见的媒体类型是application/x-www-form-urlendcoded,是键值对集合的简单编码,用&分隔(基本上和查询字符串的格式一样)。如果POST请求需要支持文件上传,则媒体类型是multipart/form-data,它是一种更为复杂的格式。最后是AJAX请求,它可以使用application/json。

    参数

    “参数”这个词可以有很多种解释,它通常是困惑的源头。对于任何一个请求,参数可以来自查询字符串、会话(请求cookies)、请求体或指定的路由参数。

    相关文章

      网友评论

          本文标题:HTTP学习

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