HTTP协议

  • HTTP协议是Hyper Text Transfer Protocol(超文本传输协议),用于万维网(www:World Wide Web)服务器传输超文本到浏览器的传送协议。它基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等)。
  • HTTP是应用层的一种通信工具,是进行数据交换的基础,是一种“客户端—服务器端”协议

HTTP消息结构

HTTP请求报文格式:
请求行(请求方法,url,HTTP协议版本)
请求头(键值对,请求响应类型)
空行
请求数据(POST请求有)
在这里插入图片描述

HTTP请求的过程

  1. 域名解析
  2. 发起TCP的3次握手
  3. 建立TCP连接后发起http请求
  4. 服务器响应http请求,浏览器得到html代码
  5. 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等)
  6. 浏览器对页面进行渲染呈现给用户

请求方式

GET 请求

  • 获取资源时使用GET请求,GET方法要求服务器将URL定位的资源放在响应报文的数据部分,回送给客户端。使用时,请求参数和对应的值附加在URL后面,‘?’ 代表URL的结尾与请求参数的开始,传递参数长度受限制。通过GET方式传递的数据直接表示在地址中,没有请求数据部分。
  • 缺点
    涉及私密内容(如账号密码)会展现在地址栏或历史记录中,数据保密性很差。因此get请求不适合传送私密数据。

POST 请求

请求参数封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据,对传送的数据大小没有限制,不会显示在URL中。

GET 和 POST 的区别

区别getpost
使用场景从服务器上获取资源表单提交
传参方式通过URL通过消息体
数据类型限制只允许ASCII字符无限制
传输数据受URL长度限制不限制
传输数据的大小无消息体少量数据有消息体大量数据
安全性安全性差,用户名和密码将明文出现在URL上
登录页面有可能被浏览器缓存
其他人查看浏览器的历史记录,就可以拿到自己的账号和密码。
安全性高,参数不会被保存在浏览器历史或 web 服务器日志中
可见性数据在 URL 中对所有人可见数据不会显示在 URL 中

post支持的数据格式

网络通信过程
操作系统进程间通信方式

HTTP状态码

状态码状态描述
1xx指示信息 – 请求已接收,继续处理
2xx成功 – 请求已被成功接收、理解
3xx重定向 – 要完成请求必须进行更进一步的操作
4xx客户端错误 – 请求有语法错误 / 请求无法实现
5xx服务器端错误 – 服务器未能实现合法的请求
  • 常见状态码
状态码状态描述
200 OK客户端请求成功
400 Bad Request客户端请求有语法错误,不能被服务器解析
401 Unauthorized请求未经授权
403 Forbidden服务器收到请求,但是拒绝服务
404 Not Found请求资源不存在(eg:输入错误的URL)
500 Internal Server Error服务器发生不可预期的错误
503 Server Unavaliable服务器当前不能处理客户端的请求,一段时间后可能恢复

HTTP 和 HTTPS 区别

  • http是超文本传输协议,信息是明文传输
    https则是具有安全性的ssl加密传输协议。
  • http的连接很简单,是无状态的。Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
  • 端口不同:
    HTTP:80端口
    HTTPS:443端口
  • 资源消耗不同:
    https通信会由于加减密处理消耗更多的CPU和内存资源;
  • 开销:
    https通信需要证书,而证书一般需要向认证机构购买。

cookie 和 session 的区别

cookie是什么?
—— cookie是存储在客户端的一小段文本信息。保存了大量轨迹信息。它由服务器生成,发送给浏览器,浏览器将其保存,下次请求同一网站时会把该cookie发送给服务器端。

不同点cookiesession
存储位置浏览器/本地(客户端)服务器
存储对象任意Java对象String类型对象
安全性
可通过拦截或本地文件找到cookie进行攻击
对服务器的压力/占用服务器性能,过多会增加服务器压力
大小限制保存数据不能>4K,个数限制(部分不 >20)无大小限制

网站的访问过程

  1. 在浏览器种输入URL
  2. 查询DNS,域名解析,获取域名对应的IP。
  3. 得到目标服务器的IP地址及端口号,调用系统库函数socket,请求一个TCP流套接字。客户端向服务器发送HTTP请求报文。
  4. 服务器端经过物理层→数据链路层→网络层→传输层→应用层,解析请求报文,发送HTTP响应报文。
  5. 关闭连接,TCP四次挥手。
  6. 客户端解析HTTP响应报文,浏览器开始显示HTML
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值