前端笔记

HTTP

2018-05-13  本文已影响12人  好奇男孩

URI和URL

与URI相比我们更熟悉URL,URL是使用浏览器等访问web页面的时候需要输入的网页地址

http://www.baidu.com

URI是更通用的资源标识符,URL是它的一个子集

URI由两个主要的子集构成

  1. URL:通过描述资源的位置来描述资源

  2. URN:通过名字来识别资源,和位置无关

URL

URI 是 Uniform Resource Identifier 的缩写

综上所述,URI就是某个协议方案表示的资源的定位标识符,协议方案是指访问资源所使用的协议类型名称

采用HTTP协议的时候,协议方案就是http,除此之外还有ftp、mailto、file等。看几个例子

ftp://ftp.is.co.za.rfc/rfc1808.txt
http://samaritan89.github.io/f2e/js/ajax.html
mailto:sunluyong@gmail.com
telnet://192.0.2.16:80

URL 格式

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

  1. 方案,也就是我们常说的协议

  2. 服务器位置

  3. 资源路径

看个例子

http://samaritan89.github.io/f2e/js/ajax.html

通用的URL由9部分组成

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<hash>

相对URL

相对URL是URL一部分,从路径开始,前面木人使用当前文档的设置

./image/logo.png
../script/a.js
/css/main.css

报文

HTTP报文是在HTTP应用程序之间发送的数据块。这些数据块以一些文本形式的元信息开头,描述报文的内容及含义,后面跟着可选的数据部分

组成

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


HTTP/1.0 200 OK
content-type: text/plain
content-length: 19

Hi, I'm a message

起始行和首部就是由行分隔的ASCII文本,主题是一个可选的数据块,可能是文本、二进制或者空

语法
HTTP报文分为两类

请求报文:

向web服务器请求一个动作

<method><request-URL><version>
<headers>

<entity-body>

响应报文

把请求结果返回给客户端

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

<entity-body>

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

方法

HTTP最大的作用就是客户端发送请求,服务器给出响应,客户端想服务器发送请求的方式有很多

GET

GET是最常用的方法,通常用于请求服务器发送某个资源

我们平时在浏览器输入网页地址,就是给服务器发送了一个get请求,希望得到这个网页

HEAD

HEAD方法和GET类似,但是在服务器的响应中没有资源的内容,只有资源的一些基本信息,主要用于

  1. 在不获取资源的情况下获取资源信息(类型、大小等)

  2. 通过状态码产看资源是否存在

  3. 通过查看首部,测试资源是否被修改了

PUT

和GET从服务器获取资源相反,PUT用于想服务器写入资源。PUT的语义就是让服务器用请求的主体部分创建一个请求URL命名的文档,如果存在就替换

当然处于安全原因,并不是所有的服务器都实现,当然最近大热的RESTful API使它有了用武之地

POST

POST用于想服务器发送数据,通常用来支持HTML的表单(input、select、textarea),表单中的数据会被发送到服务器

TRACE

客户端发送一个请求的时候,这个请求可能会穿过防火墙、代理、网关和一些其它应用程序,没个中间节点都可能修改HTTP请求,TRACE方法允许客户端在最终请求发往服务器的时候,看看它变成了什么样子

TRACE请求会在目的服务器端发送一个“闭环”诊断,行程最后一站服务器会弹回一条TRACE响应,并在响应主题中携带它收到的原始请求报文

DELETE

DELETE方法用于要求服务器删除请求的URL,和PUT一样,服务器可能会不支持

OPTIONS

OPTIONS方法用于请求 web服务器告知其支持的各种功能
Status Code
完整的 HTTP 1.1规范说明书来自于RFC 2616,HTTP 1.1的状态码被标记为新特性,用来表示请求的结果,状态码被分为五大类:

上一篇 下一篇

猜你喜欢

热点阅读