首页 > 其他分享 >HTTP-看这一篇就够了

HTTP-看这一篇就够了

时间:2022-11-10 16:56:58浏览次数:42  
标签:HTTP 一篇 GET 就够 浏览器 服务器 POST 请求

HTTP和HTTPS有什么区别
1、传输过程中信息是否加密,HTTP是超文本传输协议,信息是明文传输,HTTPS是具有安全性的SSL加密的超文本传输协议,信息是加密传输;
2、服务端使用的端口号不一致,HTTP使用80端口,HTTPS使用443端口;
3、连接状态不一致,HTTP是无状态的,HTTPS是HTTP+SSL协议构建的加密传输、身份认证的网络协议;
4、是否需要证书:HTTP不需要CA认证,HTTPS需要;

HTTP的状态码分类
1**:信息已被服务端成功接收,需要客户端进一步操作;
2**:操作被成功接收并处理;
3**: 重定向,需要进一步操作以完成请求;
4**:客户端错误,请求中包含了语法错误或无法完成的请求;
5**:服务端错误,服务器在处理请求的过程中发生了错误;

常见的HTTP状态码
200:OK
301:永久重定向
302:临时重定向
403:Fobidden,服务器理解客户端的请求,但是拒绝执行该请求
404:请求的页面/资源不存在
502:Bad Gateway,作为网管或代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
503:服务器暂时无法处理客户端的请求;
504:充当网关或代理的服务器,未及时从远端服务器获取请求;

POST和GET的相同点和区别
相同点:
① 都是TCP链接;
不同点:
① GET在浏览器回退时是无害的,而POST会再次提交请求;
② GET产生的URL地址可以被添加到书签,而POST不可以;
③ GET请求会被浏览器主动缓存,而POST不会,除非手动设置;
④ CET请求参数只能进行url编码,而POST支持多种编码格式;
⑤ GET请求在URL中传送的参数是有长度限制的,而POST没有;
⑥ 参数的数据类型,GET只接受ASCII字符,而POST没有限制;
⑦ GET比POST更不安全,参数直接暴露在URL中,所以不能用来传递敏感信息;
⑧ GET参数通过URL传递,而POST则放在Request Body中;

POST请求参数类型
POST提交的数据必须放在消息主体中,服务端通常是根据请求头headers中的Content-Type字段来获知请求中的消息主体使用何种方式编码,再对主体进行解析;
application/x-www-form-urlencoded:浏览器的原生表单;
multipart/form-data:一般用于上传文件;
application/json:服务消息注意是序列化的json;
text/xml:

HTTP请求头常见字段
method:请求方法
Accept:浏览器可接受的MIME类型
Accept-Charset:浏览器可接受的字符集
Accept-Encoding:浏览器能够进行解码的数据编码方式,如gzip
Accept-Language:浏览器所希望的语言种类,
Authorization:授权信息
Connection:表示是否需要持久连接,
Content-Length:表示请求消息正文的长度
Content-type:消息体格式
Cookie:设置cookie
From:请求发送者的email地址,由一些特殊的web客户程序使用
Host:初始URL中的主机和端口
If-Modified-Since:只有当所请求的内容在指定的日期之后又经过修改才返回它。否则返回304(Not Modified);
Pragma:指定no-cache值表示服务器必须返回一个刷新后的文档;
Referer:包含了一个URL,用户从该URL代表的页面出发访问当前请求的页面;
User-Agent:浏览器类型

HTTP的keep-alive
在请求头中添加:Connection: keep-alive;
一次TCP连接中可以持续发送多份数据而不会断开连接。
优点:
减少TCP建立连接的次数,减少TIME_WAIT状态连接;
提高性能、提高HTTPd的吞吐率
缺点:
长时间的TCP连接容易导致系统资源无效占用;

HTTP响应
主要包含三个部分
HTTP状态码:表示服务器对请求的响应结果
响应头:包含服务器对请求的响应信息
响应体:服务器发给客户端的正文数据;

标签:HTTP,一篇,GET,就够,浏览器,服务器,POST,请求
From: https://www.cnblogs.com/hannahlee/p/16877615.html

相关文章

  • SpringBoot启用Https(二十六)
    死亡的日子终究会到来,在那一天到来之前,别忘记,来我坟前再看一眼上一章简单介绍了SpringBoot自定义日志Starter(二十五),如果没有看过,​​请观看上一章​​关于这一章节的内......
  • 记一次HTTPClient模拟登录获取Cookie的开发历程
    记一次HTTPClient模拟登录获取Cookie的开发历程环境:​ springboot:2.7​ jdk: 1.8​ httpClient:4.5.13设计方案​ 通过新建一个空的cookie库创建出一个Http客户......
  • nginx 使用ssl证书配置https协议
    如果能给你带来帮助,不胜荣幸,如果有错误也请批评指正,共同学习,共同进步。第一,需要去申请或者购买ssl证书(这步略过,因为开发过程中没有给我提供证书和域名,只有ip地址),我从......
  • Go 面试每天一篇(第 36 天)
    十一长假已经结束,收拾心情准备进入工作状态。一起来看下1.关于bool变量b的赋值,下面错误的用法是?A.b=trueB.b=1C.b=bool(1)D.b=(1==2)参考答案及解析:BC。......
  • Go 面试每天一篇(第 66 天)
    1.flag是bool型变量,下面if表达式符合编码规范的是?A.ifflag==1B.ifflagC.ifflag==falseD.if!flag参考答案及解析:BCD。2.下面的代码输出什么,请说明?1funcmai......
  • Go 面试每天一篇(第 53 天)
    你好哇,欢迎来答题,一起来看下1.下面的代码有什么问题?1typeXstruct{}23func(x*X)test(){4println(x)5}67funcmain(){89vara*X10a.test()111......
  • Go 面试每天一篇(第 37 天)
    你好哇,欢迎来答题!一起来看下1.关于函数声明,下面语法正确的是?A.funcf(a,bint)(valueint,errerror)B.funcf(aint,bint)(valueint,errerror)C.funcf(a,b......
  • Go 面试每天一篇(第 35 天)
    你好哇,今天是假期前最后一天,提前祝大家假期玩的愉快!老规矩,放假期间公号会停更,看完今天的文章,咱们节后继续!一起来看下1.关于类型转化,下面选项正确的是?A.typeMyIntintvari......
  • Go 面试每天一篇(第 54 天)
    你好哇,欢迎来答题,一起来看下1.关于channel下面描述正确的是?A.向已关闭的通道发送数据会引发panic;B.从已关闭的缓冲通道接收数据,返回已缓冲数据或者零值;C.无论接收还......
  • Go 面试每天一篇(第 33 天)
    今天周六,再坚持两天就放假啦,期待!一起来看下1.下面这段代码输出结果正确吗?typeFoostruct{barstring}funcmain(){s1:=[]Foo{{"A"},{"B"},......