-
Notifications
You must be signed in to change notification settings - Fork 105
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
网络编程 #37
Comments
推荐阅读:
书籍
|
聊聊 CookieCookie 的跨域问题关联主题:JavaScript 跨域 Cookie 的大小和数量限制Cookie 的由来,cookie 的作用服务端与客户端的交互中,如何处理 cookie?客户端登录成功后,保存了 server 返回的 header 中的 cookie,以后再发起请求时,在 header 中将 cookie 带过去。 服务端在接收请求时,需要 cookie 中的哪些信息呢?cookie 过期是怎么处理的?cookie 中哪些属性是必需的?哪些是可选的?
cookie 会在什么情况下需要更更新呢?是不是客户端在每次请求时都要更新 cookie 呢?
iOS 中 cookie 的处理
问题1. 虽然服务端返回的 cookie 在浏览器的 dev tools 中可以看到,但是执行
|
文件上传和下载,断点续传
参考:
|
AFNetworking 和 Alamofire |
HTTP 协议中 GET 和 POST 的区别
参考: |
网络传输数据存储格式
参考: |
即时通讯 |
HTTP 中的 Keep-Alive,pipelining 和多路复用1. 什么是 Keep-AliveHTTP 持久连接(HTTP persistent connection,也称作HTTP keep-alive或HTTP connection reuse)是使用同一个TCP连接来发送和接收多个HTTP请求/应答,而不是为每一个新的请求/应答打开新的连接的方法。 在 HTTP 1.1 中 所有的连接默认都是持续连接,除非特殊声明不支持。在 HTTP 1.0 中, 没有官方的 keepalive 的操作。通常是在现有协议上添加一个指数。如果浏览器支持 keep-alive,它会在请求的包头中添加:
参考: 2. HTTP pipeliningHTTP管线化(英语:HTTP pipelining)是将多个HTTP请求(request)整批提交的技术,而在发送过程中不需先等待服务端的回应。 缺陷:在宽带连接中,加速不是那么显著的,因为需要服务器端应用 HTTP/1.1 协议——服务器端必须按照客户端的请求顺序恢复请求,这样整个连接还是先进先出的,队头阻塞(HOL blocking)可能会发生,造成延迟。 参考: 3. Keep-Alive 和 HTTP pipelining 的区别Keep-Alive 条件下,新请求只能在上一个请求返回时才能发出。 Keep-Alive 是大多数浏览器默认支持的,而 pipelining 却恰恰相反。 参考: 4. 多路复用(Multiplexing)
参考: 5. 多路复用和 HTTP pipelining 的区别虽然 HTTP pipelining 和多路复用一样,都支持并发请求,但是 HTTP pipelining 条件下,多个请求之间的响应会被阻塞的,所以 pipeline 至今也没有被普及应用,而 HTTP/2 的多路复用则做到了真正的并发请求。同时,流还支持优先级和流量控制。 当流并发时,就会涉及到流的优先级和依赖。优先级高的流会被优先发送。图片请求的优先级要低于 CSS 和 SCRIPT,这个设计可以确保重要的东西可以被优先加载完。这一点是 HTTP pipelining 所不支持的。 参考: |
网络调试1. DNS 域名解析
或者
2. 使用 curl 命令获取 web 内容
参考:curl - 百度百科 3. 使用 tcpdump 来查看网络数据包
参考: |
即时通讯
参考 |
Socket 编程参考
|
HTTP 状态码
参考: |
如何在 Mac 上配置一个本地 Web 服务器我们为什么需要服务器?1. 本地文件 VS. 远程文件通常情况下,你可以通过在浏览器中直接打开或者通过一个 URL 来访问一个文件。 使用浏览器访问本地文件时,一般地址是 2. 测试本地文件存在的问题在有些情况下,你打开一个本地的 html 文件时,会出现运行错误。 导致这些错误的原因主要有以下两个: 比如,你直接在浏览器中打开含有如下内容的文件: <html>
<head>
<script>
var request = new XMLHttpRequest();
request.onreadystatechange = function () {
console.log(request);
}
// 发送请求:
request.open('GET', './data.json');
request.send();
</script>
<title>HTML 测试页面</title>
</head>
<body>
<p>测试页面</p>
</body>
</html> 然后,你会在 console 中看到这样的错误:
(2) 执行文件中的代码时需要通过执行一些附加逻辑(如 PHP 或 Python)才能获得结果,而不仅仅是直接访问一个文件。 比如,我登录了京东网站后,查看购物车页面时,需要服务器返回的是包含我的购物车数据的页面,这个时候,就需要服务端在接收到请求后,跟我的用户信息(一般是 cookie)来返回匹配的数据。 方法一、启动 Mac 自带的 Apache 服务器
注意: 不再需要使用后一定要记得退出,否则会消耗电脑性能。 Q:如何修改 Apache 的默认端口? 方法二:借助 Mac 系统自带的 Python,使用其中的 SimpleHTTPServer 模块启动服务器
Q:如何修改服务器的默认端口?
结论方法二相比方法一来说,更简单、方便,也更灵活,而且还可以随时在终端上看到服务器的状态。 参考 |
相关专题:
The text was updated successfully, but these errors were encountered: