博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTTP协议
阅读量:6953 次
发布时间:2019-06-27

本文共 1922 字,大约阅读时间需要 6 分钟。

HTTP协议的主要特点

  • 简单快速 每个资源的URI都是独一无二的,客户向服务器请求服务时,只需传送请求方法和路径

URI:统一资源标识符,包括URl:统一资源定位符URN:统一资源名称

  • 灵活 通过一个http协议就能传输不同类型数据
  • 无连接 每次连接服务器处理完客户的请求,并收到客户的应答后,即断开连接
  • 无状态 连接之间没有记忆能力

HTTP报文组成部分

  • 请求报文

    • 请求行 Request Method,Request URI,Request Version
    • 请求头 包含若干属性,key:value值,服务端以此获取客户端信息
    • 空行 ···请求头结束必须有空行···
    • 请求体
  • 响应报文

    • 状态行 Request Version,Status Code及其描述
    • 响应头 包含若干属性,key:value值,服务端以此获取客户端信息
    • 空行 ···响应头结束必须有空行···
    • 响应体

cookie就存在请求头和响应头中

HTTP的响应状态码由5段组成: 1xx 请求收到, 2xx 处理成功, 3xx 重定向, 4xx 处理发生错误,责任在客户端, 5xx 处理发生错误,责任在服务端

常见code

  • 200 OK,
  • 206 Partial Content完成了带Range的GET请求
  • 301 Moved Permanently重定向
  • 302 Found临时重定向,
  • 304 Not Modified继续使用本地的缓存资源
  • 400 Bad Request请求语法错误,
  • 401 Unauthorized请求未经授权,
  • 403 Forbidden禁止访问,
  • 404 Not Found,
  • 500 Internal Server Error
  • 503 Server Unavailable请求未完成,服务器临时过载

HTTP方法

GET-->获取资源

POST-->传输资源

post和get的区别

  • GET在浏览器回退时无动作,POST会再次提交
  • GET产生的URL地址可以被收藏
  • GET请求会被浏览器主动缓存,POST除非手动设置
  • GET只能url编码,POST支持多种编码方式
  • GET参数会被完整保留在浏览器历史记录中
  • GET在URL中传参的长度是有限的(IE最小,2083)
  • GET只接受ASCII字符
  • GET通过URl传递,参数直接暴露在URl上,不安全不能用来传输敏感信息
  • POST放在request-body中,较安全

PUT-->更新资源

DELETE-->删除资源

HEAD-->获得报文头部


持久连接keep-Alive

http1.1支持

  • http协议采用“请求-应答”模式,普通模式下,每个请求/应答客户端和服务器都要新建连接,完成后又断开。

  • 使用Keep-Alive模式(持久连接,连接重用),使连接持续有效,避免后续请求时新建连接。

  • 管线化 【req1-->res1-->req2-->res-->req3-->res3】 ==> 【req1,2,3-->res1,2,3】

    • 原理:请求/响应 打包处理
    • 只能通过持久连接完成
    • 只有GET和HEAD可以管线化,POST有限制
    • 初次连接不会启动,由于服务器不一定支持HTTP1.1
    • 管线机制下的响应顺序不变
    • HTTP1.1要求服务端支持管线化,对于管线化的请求不失败,但不要求响应也必须管线化
    • 现在浏览器默认未开启管线化支持

*TCP协议,三次握手,SYN(同步序列编号)

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。


*HTTPS和HTTP的区别主要如下:

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

转载地址:http://zdnil.baihongyu.com/

你可能感兴趣的文章
wamp配置虚拟主机
查看>>
一、Scrapy的简单使用-爬虫
查看>>
Oracle Bitmap Index
查看>>
Citrix(Xenserver,Xendesktop,Xenapp,VDI,PVS)产品下载链接地址
查看>>
如何隐藏xendesktop登录时domain信息的输入
查看>>
Linux_MySQL二次整理(1)
查看>>
Linux内核LTS长期支持版生命周期
查看>>
VMware下的Linux中调整屏幕大小,分辨率问题,终于解决啦
查看>>
cxgrid打印
查看>>
ANDRO - MULTIPURPOSE OPENCART 2.X 自适应主题模板 ABC-0651-02
查看>>
必 备 习 题 集 ( 三 )
查看>>
citrix桌面发布方式
查看>>
HTTP协议详解(真的很经典)
查看>>
EMC销售部全球CTO Patricia Florissi:大数据不是炒作
查看>>
判断字符串是否是合法的ipv4地址
查看>>
Linux系统手动安装rzsz 软件包
查看>>
Hyper-V安装笔记
查看>>
Golang面试题解析(二)
查看>>
Juniper SRX与思科跑IPSEC ×××+OSPF
查看>>
C语言学习之路(1)
查看>>