不定期更新的新问题(http协议当你在浏览器里输入一个url后发生了什么?)

HTTP协议:

超文本传输协议是互联网上应用最为广泛的一种网络协议 https是以安全为目标的http通道,就是http的安全版

为什么会有这个协议呢?

为了建立客户端与服务器的连接,让两者进行沟通

自我理解:让计算机按照规矩说话,你问我答,你怎么问我怎么答,否则计算机会各说各话没办法沟通

http是通过报文进行沟通的

请求报文:请求头、请求行、请求体

响应报文:响应头、响应行、响应体

请求头:Accept:指定客户端能够接收的内容类型、Cache-Control:指定请求和响应遵循的缓存机制、Cookie;HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。

Date:请求发送的日期和时间等等(这个太多了有点记不住)

      请求行:请求方法(常用的post和get)、请求地址(url)、请求协议及版本(HTTP/1.1)

请求体:就像用post表单传递数据如:name=aimee  age=18     name=aimee&age=18会出现在请求体中

响应行:响应协议及版本号(HTTP/1.1)、响应状态码(200)响应状态文字(ok)

响应头:Allow:对于特定资源的有效动作  Connection针对该链接所预期的选项  ETag 对于某个资源的某个特定的版本的一个标识符,通常是一个消息散列(就列举了几个)

响应体:就是我们请求回来的数据

状态码:

1xx        接到请求继续处理

2xx        成功

3xx        重定向

4xx        客户端错误

5xx        服务器错误

常见的状态码 :

成功状态码:200 表示成功、301/302临时/永久重定向  304资源未被修改

失败状态码:404请求内容不存在、500服务器暂时不可用、503服务器内部错误

请求方法get和post的区别:

get使用url或cookie传参,而post将数据放在body中

get的url有长度上的限制,post可以传很多的数据

post比get安全

当在浏览器下输入一个url发生了什么:

1.浏览器通过DNS域名解析到服务IP

DNS(网域名称系统(Domain Name System,有时也简称为域名)),它可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址数串。域名后缀:.top.xyz.com.cn.edu。特点:独一无二 不可重复

IP地址是Internet主机的作为路由寻址用的数字体标识,人不容易记忆。因而产生了域名这一种字符型标识。

为了识别一个实体,TCP/IP 使用 IP 地址来唯一确定一台主机到因特网的连接,DNS会帮助我们完成域名到IP地址映射的工作

2.客户端通过TCP协议建立到服务器的TCP连接

TCP协议(传输层协议):在正式收发数据前,必须要和对方建立可靠的连接。一个TCP连接要经过三次‘对话’才能建立起来。

UDP协议:面向非连接的协议,就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送,我觉得这个与手机短信非常相似,在发短信的时候,只需要输入对方的手机号就可以啦

3.客户端向服务器端发送http协议包,请求服务器的资源文档

4.服务器向客户端发送http协议应答包

5.客户端和服务器断开,客户端开始解释处理HTML文档

原文地址:https://www.cnblogs.com/craller/p/8969358.html

时间: 2024-08-24 14:09:29

不定期更新的新问题(http协议当你在浏览器里输入一个url后发生了什么?)的相关文章

基于C/S架构的3D对战网络游戏C++框架 _【不定期更新通知】

由于笔者最近有比赛项目要赶,这个基于C/S架构的3D对战网络游戏C++框架也遇到了一点瓶颈需要点时间沉淀,所以近一段时间不能保证每天更新了,会保持不定期更新.同时近期笔者也会多分享一些已经做过学过的C++.服务器端开发.游戏开发相关的内容给大家(因为这些内容已经熟悉也积攒了一定量现有的笔记所以整理成博客会相对轻松些).感谢大家支持,深鞠躬.过两天笔者要去上海参加C++大会,回来后会把参会感悟也分享给大家的^__^.喜欢技术人的纯粹,没有等级之分,希望我们能一路一起进步,共同成长. 基于C/S架构

node.js项目开发问题集锦(不定期更新,随时把开发过程中遇到的问题加上)

1.用express开发站点时,怎么定义通用的头部和尾部 方案1:用类似asp时代的include添加,如ejs模板: <% include ../header.ejs %> <h1 class="page-header"> 这里是内容. 注:..表示header.ejs在上一级目录,ejs扩展名可以去掉,直接写:include ../header </h1> <% include ../footer %> 方案2:用类似于MVC的lay

adt-bundle和android studio下载地址(不定期更新)

因为众所周知的原因,android官网打不开.在这里公布IDE地址,可以用迅雷等软件直接下载. adt-bundle-windows-x86: http://dl.google.com/android/adt/adt-bundle-windows-x86-20140702.zip adt-bundle和android studio下载地址(不定期更新),布布扣,bubuko.com

leran html5(不定期更新)

采用Html5技术编写 了解HTML5请到:http://baike.baidu.com/link?url=4437QJzcpocoFR42wQf6DDOk-7Wj3_zrA7ft_ces0keEVjiCey2C4PyMKmiTt8Mg9YI2hWC7CXBxV7oLbT3Rg_ 开始学习吧! Learn Html5   By C.N.Chinese 1.伪元素 Home About News Develop Others style: #nav{ display:block;width:600

那些Java IDE工具(不定期更新)

一.Eclipse Eclipse是一个市场占有率很高的Java IDE工具. 官网地址:http://www.eclipse.org/ 下载地址:http://www.eclipse.org/downloads/ 二.... 那些Java IDE工具(不定期更新)

【不定期更新】noip复习(或许有误请指正)

一.基本算法 2.二分查找 void find(int l,int r){ if (l>r || a[l]>x || a[r]<x) return; int mid = (l+r) >> 1; if (a[mid] == x){ if (mid < pos)pos=mid; if (a[mid-1] == x) find(l, mid-1); if (a[mid+1] == x) find(mid+1, r); return; } if (x > a[mid])

appframework学习--appframework开发常见问题及解决方法(不定期更新)

1.页面跳转错误:Uncaught TypeError: Cannot read property 'afCSS3AnimateId' of undefined 原因:data-defer=""  跳转路径不正确 解决:路径正确即可 2.程序正在启动的圈圈一直 原因:转id冲突,出现重名id 解决:id冲突,出现重名id appframework学习--appframework开发常见问题及解决方法(不定期更新)

LDD和scull相关各种结构体的故事(学习笔记 不定期更新)

LDD和各种结构体的故事 struct scull_dev     位置:scull/scull.h struct scull_dev { struct scull_qset *data; /* Pointer to first quantum set */ int quantum; /* the current quantum size */ int qset; /* the current array size */ unsigned long size; /* amount of data

常用算法设计和优化策略(本蒟蒻不定期更新)

常用算法设计和优化策略(本蒟蒻不定期更新) 下面是紫书上讲的常用算法设计策略和优化策略: 分治法:将问题分成相同的独立子问题求解.拆分出的问题必须有最优子结构性质(子问题求出的是最优解) 动态规划.本质是:对于一个问题,通过划分阶段,定义状态与状态间的关系,来分解问题.利用单阶段问题之间的联系,或者同一阶段状态之间的联系,一个一个阶段往下决策,最终解决问题. 拆分出的问题必须满足最优子结构性质和无后效性(当前阶段以前的状态不会影响以后的状态,只与当前阶段有关).动归的目的是避免重叠子问题.递推和