HTTP

参考:
HTTP协议详解
HTTP协议处理流程

HTTP练习沙箱:httpbin.org

官方文档:
IETF RFC2616 HTTP/1.1
https://www.w3.org/Protocols/
http://www.faqs.org/rfcs/

书籍参考:
《HTTP权威指南》

基本知识点

超文本输出协议
快速,灵活
请求方法:GET、HEAD、POST、PUT、DELETE
传输类型以 Content-Type加以标记
无连接:请求完收到响应即断开连接
无状态:后续处理需要前面的信息就必须重传

HTTP request:请求行,请求头,请求体;
HTTP response:状态行,响应头,响应体;

  • http状态码 :
    302 是请求重定向,304未改变,用于浏览器缓存机制;
    500以上是服务器错误
    400以上是请求链接错误或者找不到服务器,401未授权,404未找到;
    200以上是正确
    100以上是请求接受成功

  • cookie RFC6265
    为了辨别用户身份,进行session跟踪而存储在用户本地终端上的数据,通常经过加密,可以叫做浏览器缓存;
    cookie是由web服务器创建的保存在用户浏览器上的小文本文件,它包含有关用户信息,可以加快用户访问速度,但是会导致安全问题;
    用户访问一个web服务器时,浏览器首先要检查本地的cookies,并将其样发给web服务器;
    cookies最经典的应用是判定注册用户是否已经登录网站;

  • HTTP URL请求过程
    请求DNS域名解析
    TCP/IP连接
    发送请求
    接受响应
    客户端主动关闭

  • chunked 编码
    一般情况下HTTP的header包含content-length来指明报文体长度;
    但有时候服务生成HTTP回应是无法确定消息大小的,比如大文件的下载,或者后台需要复杂的逻辑才能全部处理页面的请求,这时需要实时生成消息长度,服务器一般使用 chunked 编码;
    编码使用若干个Chunk组成,由一个标明长度为0的chunk结束,每个Chunk有两部分组成,第一部分是该Chunk的长度和长度单位(一般不写),第二部分就是指定长度的内容,每个部分用CRLF隔开。在最后一个长度为0的Chunk中的内容是称为footer的内容,是一些没有写的头部内容

HTTP 原理
参数字段
  • Keep-Alive:
    Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接,有一个设置时间
  • Range:
    设置断点下载/续传的位置
Socket

socket起源于Unix,而Unix/Linux的基本哲学之一就是“一切皆文件”;
scoket是一套完成TCP/UDP协议的接口,本身并不是协议,而是一个调用接口;

  • 心跳
    理论上socket的TCP链接是长连接,一般不会主动断开,但是会出现异常情况导致连接断开,所以在无数据传输的时候要发送心跳消息,消息内容由开发者自定义;

HTTPS

HHTPS 使用 443端口, HTTP使用80端口;
HTTP+SSL,SSL(安全套接层)是Netscape公司设计的主要用于web的安全传输协议,通过证书来确保客户端跟服务端之间的通信数据是加密安全的;
加解密算法类型:

  • 对称加密:密钥只有一个,加密解密为同一个密码,切加解速度快
    典型的对称加密算法有DES、AES、RC5、3DES等;
  • 非对称加密:使用两个密钥,公共密钥和私有密钥
    根据公钥无法推知私钥,根据私钥也无法推知公钥,相对对称加密速度较慢,典型的非对称加密算法有RSA、DSA等;
    私有由一方保存,另一方任何人都可以获得公共密钥;
    URL导图:


    Paste_Image.png
Paste_Image.png

Multipart/form-data

https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html
https://my.oschina.net/cnlw/blog/168466
http://www.faqs.org/rfcs/
http里没有专门用于文件上传的请求方式,文件上传请求是在post请求基础之上定义出来的一种方式;
multipart请求头信息: Content-Type,其值必须规定为multipart/form-data,具体的头信息如下:

Content-Type: multipart/form-data; boundary=${bound}

${bound}是一个占位符,代表我们规定的分隔符;
与post请求体不同的是它的构造方式,post是简单的name=value值链接,而multipart/form-data则是添加了分割符等内容的构造体;
**要发送一个multipart请求,其实任何支持post请求的工具或语言都可以支持,只是自己要稍微包装一下便可

Paste_Image.png

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

推荐阅读更多精彩内容

  • 一、概念(载录于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434阅读 8,322评论 6 152
  • Http协议详解 标签(空格分隔): Linux 声明:本片文章非原创,内容来源于博客园作者MIN飞翔的HTTP协...
    Sivin阅读 5,193评论 3 82
  • 本文整理自MIN飞翔博客 [1] 1. 概念 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或...
    HoyaWhite阅读 2,625评论 2 20
  • /*--------------------------- 01 HTTP请求 -----------------...
    蓝心儿的蓝色之旅阅读 2,149评论 0 4
  • 工作流程 一次HTTP操作称为一个事务,其工作过程可分为四步: 1)首先客户机与服务器需要建立连接。只要单击某个超...
    保川阅读 4,561评论 2 14