HTTP

常见的 HTTP 响应状态码

在一个 HTTP 请求的响应报文中的状态行会有一个响应状态码

这个状态码是用来描述本次响应的状态的

通常会出现五种状态码

100 ~ 199

200 ~ 299

300 ~ 399

400 ~ 499

500 ~ 599

100 ~ 199


一般我们看不到,因为表示请求继续

100:  继续请求,前面的一部分内容服务端已经接受到了,正在等待后续内容

101: 请求者已经准备切换协议,服务器页表示同意


200 ~ 299

2 开头的都是表示成功,本次请求成功了,只不过不一样的状态码有不一样的含义(语义化)

*200: 标准请求响应成功(一般表示服务端提供的是网页)

201: 创建成功(一般是注册的时候,表示新用户信息已经添加到数据库)

203: 表示服务器已经成功处理了请求,但是返回的信息可能来自另一源

204: 服务端已经成功处理了请求,但是没有任何数据返回


300 ~ 399

3 开头也是成功的一种,但是一般表示重定向

*301: 永久重定向

*302: 临时重定向

*304: 使用的是缓存的数据

305: 使用代理


400 ~ 499

4 开头表示客户端出现错误了

400: 请求的语法服务端不认识

401: 未授权(你要登录的网站需要授权登录)

403: 服务器拒绝了你的请求

*404: 服务器找不到你请求的 URL

407: 你的代理没有授权

408: 请求超时

410: 你请求的数据已经被服务端永久删除


500 ~ 599

5 开头的表示服务端出现了错误

*500: 服务器内部错误

503: 服务器当前不可用(过载或者维护)

505: 请求的协议服务器不支持


常见的 HTTP 请求方式

每一个 HTTP 请求在请求行里面会有一个东西叫做请求方式

不同的请求方式代表的含义不同

GET: 一般用于获取一些信息使用(获取列表)

POST: 一般用于发送一些数据给服务端(登录)

PUT: 一般用于发送一些数据给服务当让其添加新数据(注册)

DELETE: 一般用于删除某些数据

HEAD: 类似于 GET 的请求,只不过一般没有响应的具体内容,用于获取报文头

CONNECT: HTTP/1.1 中预留的方式,一般用于管道链接改变为代理的时候使用

PATCH: 是和 PUT 方式类似的一个方式,一般用于更新局部数据

OPTIONS: 允许客户端查看服务端性能


我们比较常用的就是 GET 和 POST

GET 请求

参数以 querystring 的形式发送,也就是直接拼接在 请求路径的后面

GET 请求会被浏览器主动缓存

GET 请求根据不同的浏览器对长度是有限制的

IE: 2083 个字符

FireFox: 65536 个字符

Safari: 80000 个字符

Opera: 190000 个字符

Chrome: 8182 个字符

APACHE(server): 理论上接受的最大长度是 8192 个字符(有待商榷)

对参数的类型有限制,只接受 ASCII 码的格式

POST 请求

参数以 request body的形式发送,也就是放在请求体中

POST 请求不会被浏览器主动缓存,除非手动设置

POST 请求理论上是没有限制的,除非服务端做了限制

对参数类型没有限制,理论上可以传递任意数据类型,只不过要和请求头对应



COOKIE叫做会话技术

cookie 是浏览器提供的一个存储空间

每一个 HTTP 请求都会在请求头中携带 cookie 到服务端

每一个 HTTP 响应都会在响应头中携带 cookie 到客户端

也就是说,cookie 是不需要我们手动设置,就会自动在 客户端 和 服务端之间游走的数据

我们只是需要设置一下 cookie 的内容就可以


COOKIE 的存储形式

cookie 是以字符串的形式存储,在字符串中以 key=value 的形式出现

每一个 key=value 是一条数据

多个数据之间以 ; 分割

// cookie 的形态

'a=100; b=200; c=300;'


COOKIE 的特点

存储大小有限制,一般是 4 KB 左右

数量有限制,一般是 50 条左右

有时效性,也就是有过期时间,一般是 会话级别(也就是浏览器关闭就过期了)

有域名限制,也就是说谁设置的谁才能读取


使用方式

读取 cookie 的内容使用 document.cookie

constcookie=document.cookie

console.log(cookie)// 就能得到当前 cookie 的值

设置 cookie 的内容使用 document.cookie

// 设置一个时效性为会话级别的 cookie

document.cookie='a=100'

// 设置一个有过期时间的 cookie

document.cookie='b=200;expires=Thu, 18 Dec 2043 12:00:00 GMT";'

// 上面这个 cookie 数据会在 2043 年 12 月 18 日 12 点以后过期,过期后会自动消失

删除 cookie 的内容使用 document.cookie

// 因为 cookie 不能直接删除

// 所以我们只能把某一条 cookie 的过期时间设置成当前时间之前

// 那么浏览器就会自动删除 cookie

document.cookie='b=200;expires=Thu, 18 Dec 2018 12:00:00 GMT";'

COOKIE 操作封装

因为 js 中没有专门操作 COOKIE 增删改查的方法

所以需要我们自己封装一个方法

设置 cookie

/**

* setCookie 用于设置 cookie

* @param {STRING} key  要设置的 cookie 名称

* @param {STRING} value  要设置的 cookie 内容

* @param {NUMBER} expires  过期时间

*/

functionsetCookie(key,value,expires) {

consttime=newDate()

time.setTime(time.getTime()-1000*60*60*24*8+expires)// 用于设置过期时间

document.cookie=`${key}=${value};expires=${time};`

}

读取 cookie

/**

* getCookie 获取 cookie 中的某一个属性

* @param {STRING} key 你要查询的 cookie 属性

* @return {STRING} 你要查询的那个 cookie 属性的值

*/

functiongetCookie(key) {

constcookieArr=document.cookie.split('; ')

letvalue=''

cookieArr.forEach(item=>{

if(item.split('=')[0]===key) {

value=item.split('=')[1]

   }

  })

returnvalue

}



删除 cookie

/**

* delCookie 删除 cookie 中的某一个属性

* @param {STRING} name 你要删除的某一个 cookie 属性的名称

*/

function delCookie(name) {

  setCookie(name, 1, -1)

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354

推荐阅读更多精彩内容

  • HTTPhttp 是我们前后台交互的时候的传输协议(即超文本传输协议)HTTP 的工作流程和服务器建立链接建立链接...
    小胖子_d7d8阅读 169评论 0 0
  • HTTP请求报文与响应报文格式请求报文包含四部分:a、请求行:包含请求方法、URI、HTTP版本信息 b、请求首部...
    小棋子js阅读 586评论 0 1
  • 2018-6-26更新 304状态码 : Not Modified ---- 页面未被修改,缓存是最新的 30...
    woow_wu7阅读 1,435评论 0 2
  • 一、HTTP协议的主要特点 简单快速:每个资源URI都是固定的 灵活:头部有数据类型,可以完成不同类型传输 无连接...
    番茄沙司a阅读 859评论 0 5
  • 博主最近在复习HTTP,之前用书主要是《计算机网络》谢希仁版本和上野宣的《图解HTTP》,最近结合网上博客,进行复...
    stoneyang94阅读 806评论 0 0