#JS续:8.1 HTTP学习

一、HTTP

http,全称HyperText Transfer
Protocol,超文本传输协议(协议,定义了一种规则)
是一个应用层的协议
用于分发协作
是万维网的数据交流的基础

二、URL/URI

1、定义

  • URI:Uniform Resource Identifier 统一资源标识符
  • URL:Uniform Resource Location 统一资源定位符

URL是使用浏览器等访问web页面的时候需要输入的网页地址
http://www.baidu.com

URI是更通用的资源标识符,URL是它的一个子集。URI由两个主要的子集构成

  • URL:通过描述资源的位置来描述资源
  • URN:通过名字来识别资源,和位置无关

2、我们常见的URL主要由三部分组成

  • 方案,也就是我们常说的协议
  • 服务器位置
  • 资源路径

看个例子
http://samaritan89.github.io/f2e/js/ajax.html
通用的URL由9部分组成
<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<hash>
9部分具体解释:

  • <scheme>:对于web页面来说最常用的协议就是http和https
  • <user>:<password>:user和password现在不常见了,不会在URL明文书写用户名和密码了,都是通过登录的方式
  • <host>:主机可以是IPO地址过着域名
  • <port>:端口号用来区分主机上的进程,方便找到web服务器,http默认是80
  • <path>:path是资源的路径,也就是存放位置,不一定和物理路径完全对应,符合web服务器路由约定即可
  • <params>:params,在一些协议中需要参数来访问资源,例如ftp是二进制还是文本传输,参数是名值对,用;隔开
  • <query>:query:这个是get请求最常用的传递参数方式了 ?a=1&b=2&=3
  • <hash>:hash也成为片段,设计为标识文档的一部分,很多MVVM框架用作了路由功能

三、HTTP报文

1、定义

规定浏览器和服务器之间传输的数据有固定的格式,即报文
英文资料参考:

2、报文的组成

HTTP报文是简单的格式化数据块,每个报文都包含一条来自客户端的请求或者一条来自服务器的响应,由3个部分组成

  • 对报文进行描述的起始行 —— start line
  • 包含属性的首部块 —— header
  • 可选的包含数据的主体部分 —— body
HTTP/1.0 200 OK
content-type: text/plain
content-length: 19

Hi, I'm a message

3、报文类型

  • 请求报文
  • 响应报文
    (1)请求报文:

在浏览器上输入url,浏览器将发送一条请求,之后做dns的查询,找到对应服务器。那么,请求在网络传输中是一种什么样的格式?即为请求报文

//向web服务器请求一个动作
<method><request-URL><version> /* 包含http版本号和请求的url,以及对应的状态码 */
<headers>
<entity-body>

(2)响应报文
把请求结果返回给客户端

<version><status><reason-phrase>
<headers>

<entity-body>

首部和方法配合,共同决定了服务器和客户端能做什么

4、报文首部速记


通用首部

请求首部

响应首部

四、状态码

戳文状态码了解一下:

#hello,JS:13-01:Ajax 使用(含状态码

  • 301,客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。配置server时,在配置文件中添加301和url。用户访问这个url时,看到301这个重定向,请求到达服务器,服务器将301状态码写入,浏览器收到该响应,写入记忆内部,下次访问的时候,浏览器看到301这个状态码时,就会进行url的重定向。
  • 304,关于缓存机制。
  • 400,请求有问题。
  • 403,访问有权限。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容