1. HTTP通信流程:

1)输入www.baidu.com
2)解析成IP地址:192.168.0.1
3)浏览器通过该IP访问web服务器获取web资源
4)再返回给客户端
5)最后呈现在用户面前

2. HTTP常用的6种请求类型:

1)OPTIONS:返回服务器所支持的HTTP请求方法。
2)HEAD:与GET请求相一致的响应,但只返回头部信息,响应体将不会被返回。
3)GET:向特定的资源发出请求。
4)POST:向指定资源提交数据进行处理请求。数据被包含在请求体中。
5)PUT:向指定资源位置上传其最新内容。
6)DELETE:请求服务器删除指定资源。

3. 常见的请求头:(重点记忆以下请求头)

● Accept
○ 指定客户端能够接收的内容类型
○ Accept: text/plain, text/html
● Accept-Charset
○ 浏览器可以接受的字符编码集
○ Accept-Charset: iso-8859-5
● Accept-Encoding
○ 指定浏览器可以支持的web服务器返回内容压缩编码类型
○ Accept-Encoding: compress, gzip
● Accept-Language
○ 浏览器可接受的语言
○ Accept-Language: en,zh
● Cookie
○ HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器
○ Cookie: role=admin;ssid=1
● Range
○ 只请求实体的一部分,指定范围
○ Range: bytes=500-999
● Referer
○ 先前网页的地址,当前请求网页紧随其后,即来路
○ Referer: http://www.zcmhi.com/archives/71.html
● User-Agent
○ User-Agent的内容包含发出请求的用户信息
○ User-Agent: Mozilla/5.0 (Linux; X11)

4. GET和POST区别

1:URL可见性
i:Get传参方式是通过地址栏URL传递,是可以直接看到get传递的参数,get把请求的数据在URL后通过?连接,通过&进行参数分割。
ii:Post传参方式参数URL不可见,post将从参数存放在HTTP的包体内。
2:传输数据大小
i:Get传递数据是通过URL进行传递,对传递的数据长度是受到URL大小的限制,URL最大长度是2048个字符。
ii:Post没有长度限制。
3:后退页面
Get后退不会有影响,Post后退会重新进行提交
4:缓存
i:Get 请求可以被缓存,请求的记录会留在历史记录中。
ii:Post 不可以被缓存,请求不会留在历史记录。
5:编码方式
i:Get 请求只URL编码。
ii:Post 支持多种编码方式。
6:字符类型
i:Get 只支持ASCII字符。
ii:Post 没有字符类型限制。

5. 一个HTTP请求报文由四个部分组成:请求行、请求头部、空行、请求数据。

6. HTTP响应报文:响应行、响应头、响应体

7.HTTP响应码:

1xx(临时响应)、2xx(成功)、3xx(重定向)、4xx(请求错误)、5xx(服务器错误)

(重点记忆100、101 、200、201、301、302 、 400、401、403、404 、405 、500、501、)

8. HTTPS 默认工作在 TCP 协议443端口

9.HTTP常用的6种协议:

 OPTIONS:返回服务器所支持的HTTP请求方法。

HEAD:与GET请求相一致的响应,但只返回头部信息,响应体将不会被返回。

GET:向特定的资源发出请求。

POST:向指定资源提交数据进行处理请求。数据被包含在请求体中。

PUT:向指定资源位置上传其最新内容。

DELETE:请求服务器删除指定资源。

10.HTTP 与 HTTPS 区别:

  • HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。
  • 使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec、Comodo、GoDaddy 和 GlobalSign 等。
  • HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。
  • http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。
  • HTTPS 其实就是建构在 SSL/TLS 之上的 HTTP 协议,所以,要比较 HTTPS 比 HTTP 要更耗费服务器资源。

11.HTTP请求响应过程:

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

HTTP通信基础的更多相关文章

  1. PHP进程通信基础——信号

    PHP进程通信基础--信号 使用信号通信.可以使用kill -l 来查看当前系统的信号类型. 每个信号所代表的的详细含义,请查看我的这篇博客:http://www.cnblogs.com/roverl ...

  2. PHP进程通信基础——信号量+共享内存通信

    PHP进程通信基础--信号量+共享内存通信 由于进程之间谁先执行并不确定,这取决于内核的进程调度算法,其中比较复杂.由此有可能多进程在相同的时间内同时访问共享内存,从而造成不可预料的错误.信号量这个名 ...

  3. PHP进程通信基础——shmop 、sem系列函数使用

    PHP进程通信基础--shmop .sem系列函数使用 进程通信的原理就是在系统中开辟出一个共享区域,不管是管道也好,还是共享内存,都是这个原理.如果心中有了这个概念,就会很方便去理解代码.由于官网上 ...

  4. IP通信基础的第一个星期

    IP通信基础不仅是很多专业课程的基础,同时学好它,在以后很多工作上都可以运用到,有网络工程师.通信工程师等等,当然,有些证书也会涉及到IP通信基础,有网络中级高级 CCNA等等. 那么,学好IP通信基 ...

  5. IP通信基础学习第一周

    在IP方向上,IP通信基础是学习其他诸如:数字程教控交换技术与应用.IPV6技术与应用.SDH传输技术与应用等课程的基础. 学习IP通信基础,对学生而言至少可以拿学分,不仅有利于以后的学习,还有机会从 ...

  6. LABVIEW串口通信基础

    写这一篇串口通信基础的契机是最近刚刚完成一个温箱的仪器控制程序,LABVIEW通过串口与温箱单片机通讯,我打算将过程中遇到的一些问题和收获列在这里方便有需求的网友比对.寻找答案. 学LABVIEW时间 ...

  7. 第2章 2.n物理层--数据通信基础知识总结

    数据通信基础知识总结

  8. Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)

    Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器    定义:       ...

  9. Java学习之Hessian通信基础

    一.首先先说Hessian是什么?    Hessian:hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能,相比WebService,Hessian更简 ...

  10. Android 学习笔记之网络通信基础+WebView....

    PS:加快学习进度...下周一完成Android网络通信...然后正式进入实战... 学习内容: 1.Android中Http基础... 2.Android中的Socket基础... 3.Androi ...

随机推荐

  1. vue-quill-editor 图片上传处理

    <template> <div class="quill-editor"> <!-- 图片上传组件辅助--> <el-upload cla ...

  2. Javascript 基础知识,ajax,面向对象

    Javascript 数据类型 数据类型 基本数据类型 数字,字符串,布尔值 undefine null undefined的常见情形:ES6新语法提供的对象解构赋值应用讲解 1.1 对象属性不存在 ...

  3. vue3 vite等笔记

    1.脚手架 vue-cli基于webpack封装,生态非常强大,可配置性也非常高,几乎能够满足前端工程化的所有要求.缺点就是配置复杂,甚至有公司有专门的webpack工程师专门做配置,另外就是webp ...

  4. 网络图片转InputStream,网络图片转MultipartFile,InputStream转MultipartFile

    头疼,不废话直接上代码 <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload --> ...

  5. Kubernetes--部署Ingress控制器(Nginx)

    Ingress控制器自身是运行于Pod中的容器应用,一般是Nginx或Envoy一类的具有代理及负载均衡功能的守护进程,它监视着来自于API Server的Ingress对象状态,并以其规则生成相应的 ...

  6. iOS包大小计算

    一.LinkMap文件分析 说明:LinkMap数据是根据文章<LinkMap文件分析>中方法实验实测数据. 如何获得LinkMap文件 1.在XCode中开启编译选项Write Link ...

  7. Importing the multiarray numpy extension module failed

    使用pyinstall打包含有numpy库的可执行程序后运行报错:Importing the multiarray numpy extension module failed 解决方法:卸载使用pip ...

  8. Mixly智能门禁(物联网)

    智能门禁arduino rc522读卡器  sg90舵机 校园卡我的校园卡号识别为 30fcb4a8d #include <RFID.h>#include <SPI.h>#in ...

  9. react文件分片上传

    参考文档: https://blog.csdn.net/weixin_39887846/article/details/113492372 https://juejin.cn/post/6844904 ...

  10. UE5农场项目小功能(1)-砍树

    砍树功能效果的实现 ​ 在UE中想做一个砍树的功能,B站上没找到什么教程,最后在油管上找到个视频并跟着实现了,一共设计到三个蓝图和一个什么也没写的蓝图接口,下面介绍下步骤. 1.角色蓝图的部分 人物这 ...